https://www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 먼저 이번 문제의 커리큘럼을 이해보자면 최대 300 까지의 인덱스를 가진 이차원 배열에서 시작합니다. 1. 입력받을 인덱스의 최대값을 입력해줍니다 2. 인덱스에 넣어줄 값을 입력 받습니다. 3. 몇번 더 해줄지 입력 받습니다. 4. 예를 들어 1 1 2 3 이면 A[1][1] 부터 A[2][3] 반복문을 돌리면서 인덱스 값들을 더 해주고 출력합니다. #define _C..
배열 선언 js 의 배열 선언은 c 와 많이 다를것이 없다. 일단 배열을 선언해줄때의 방법은 2가지가 있으며 첫번째로는 [] 를 이용한 것이고 두번째는 Array() 함수를 이용한 방법인데 [] 를 이용한 방법만 먼저 알아보도록 하겠다. 보다시피 const 변수명 = [변수값]; 을 이용해 선언해주며 같은 방법으로 비어있는 배열도 선언해줄 수 있다. 이런 비어 있는 배열에 값을 넣어주는 방법엔 여러가지가 있지만 하나의 방법으론 변수명.push(배열에 입력해줄 값) 를 이용해주는 방법이 있다. 배열명.push 는 배열의 마지막 부분에 원하고자 하는 값을 넣게 해주는 함수다. ImHandsomeBabe.push("I am idiot on C"); document.write(ImHandsomeBabe); 이런..
https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 동전 0 문제는 그리디 알고리즘을 이용한 문제입니다. 그리디 알고리즘이란? 간단히 말해서 하나의 트리에서 최종 출력값이 가장 큰 것이 아닌 지금 바라보고 있는 상태에서 가장 큰것을 가져가면서 트리를 타고 내려가게 되는 알고리즘입니다. #define _CRT_SECURE_NO_WARNINGS #include int main() { in..
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 이 문제에 들어가기 전 이 문제는 스택을 사용하는 자료형 문제로 스택은 간단히 말해 거대한 탑 모양의 메모리라고 생각하면 된다. push() 를 이용해 맨 밑에부터 자료를 넣어주고 pop() 을 이용해 탑의 꼭대기에서부터 값을 빼주는 가장 마지막에 넣은 정보를 가장 먼저 빼주는 자료구조입니다. 후입선출(後入先出/Last In First Out—LIFO)형 자료구조..
사실 이번 천코대 대회를 준비하면서 머리는 부족하지만 여러 문제를 풀어보고 싶었다. 확실히 복습과 배움이 부족했던 것 같고 스스로 학습하고 복습하는 태도를 가져야 할 것 같다. 아무튼 문제들로 넘어 가겠다. 1. 분산처리 https://www.acmicpc.net/problem/1009 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net #define _CRT_SECURE_NO_WARNINGS #include int main() { int t; int num, base_num; int sum = 1; scanf("%d", ..
https://www.acmicpc.net/problem/20492 20492번: 세금 선린인터넷고등학교의 한 학생은 프로그래밍 대회에 참가하여 거액의 상금을 수상하는 영광을 누리게 되었다. 하지만, 이 학생이 상금 금액의 전부를 수령하게 되는 것은 아니다. 상금의 일부 www.acmicpc.net 선린인터넷고 제4회 천하제일 코딩대회 예선 문제였던 세금 문제에 대해 풀어보겠습니다. #define _CRT_SECURE_NO_WARNINGS #include int main() { float num; float num_1, num_2; scanf("%f", &num); num_1 = (num/100)*78; num_2 = ((num/100)*80)+((((num/100)*20)/100)*78); printf..
들어가기 전 포인터란 무엇인가에 대해 간단하게 알아보자면 배열이나 값의 메모리 속 주소를 저장해주는 것입니다. #include int main(){ int *point; int* point1; int * point2; // 포인터 선언 int n = 10; //일반 변수 point = &n; printf("%d", point); } 들어가기 전 포인터와 이 간단한 코드에 대해서 이해하기 위해서 몇가지를 알려드리겠습니다. 참조연산자란? 참조 연산자는 * 을 말하며 포인터의 이름이나 변수의 주소 앞에 사용하여, 포인터에 가리키는 주소에 저장된 값을 반환합니다. 위 코드에서는 *point , 등으로 포인터 변수를 만드는데 사용해 주었습니다만 3개의 포인터 변수들에 참조연산자의 위치가 모두 다른것을 볼 수 있으..
일단 2번 문제를 들어가면서 주의해야할 점은 1번 문제와 다르게 pw 가 md5로 암호화 되어 있다는 것이다. 하지만 이 외에는 1번 문제와 엄청나게 차이가 나지는 않는다. 1번 문제를 풀땐 아이디를 입력할 필요가 없기 때문에 php 뒤에 ?pw='or'1'='1 만 입력해준다면 sql 특성상 시스템에서 자동으로 ' 를 씌워주기에 or '1'='1' 가 되어 구문이 끝나게 된다. 이에따라 뒤의 1 = 1 가 참이기 때문에 모두 참이 되어 1번 문제가 풀리게 되는 것이다. 그렇다면 2번 문제에서는 어떻게 해야할까 먼저 답부터 말하자면 ?id=admin' or pw=' 를 입력하게 되면 된다. pw 는 md5 형식으로 인해 암호화되기 때문에 직접 적게 된다면 암호화 되어서 injection 을 할 수 없게 ..
xss game 3단계의 힌트를 보게 되면 Data in the window.locationobject can be influenced by an attacker. 구문에서 window.location 부분에 버그가 있다. 데이터가 공격자에게 영향받을 수 있다고 말해줍니다. html += ""; window.location.hash = num; window.onload = function() { chooseTab(unescape(self.location.hash.substr(1)) || "1"); } 위 js 코드들에 오류가 있다는것을 알 수 있고 그 위치가 사진 번호를 지정해주는 url 의 ~~#n 으로 되어있는걸 알 수 있습니다. 하지만 여기서 는 적용되지 않는다고 나와있기에 onerror 를 사용해..