본문 바로가기

Coding Tests

(78)
( C )백준 10757(문자열을 사용해 값이 큰 수 더하기) 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10의 만승) 출력 첫째 줄에 A+B를 출력한다. #include #include void reverse (char arr[]) { int len = strlen(arr); for (int i = 0; i < len / 2; i++) { char temp = arr[i]; arr[i] = arr[len - i - 1]; arr[len - i - 1] = temp; } } int main(void) { char A[10002] = { 0 }; char B[10002] = { 0 }; char res[10003] = { 0 }; int carry = 0, i; scan..
( C ) 코드업 1096번(2차원 배열 활용) 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보는 문제이다 바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다. 둘째 줄 부터 n+1 번째 줄까지 힌 돌을 놓을 좌표(x, y)가 n줄 입력된다. n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 같은 좌표는 입력되지 않는다. #include int main(void) { int arr[19][19]; int x, y; int n,i; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d %d", &x, &y); arr[x][y]; } printf("%d", arr[19][19]); return 0; } 위 코드에는 정말 틀린..
코드업 1084번(경우의 수 출력해보기) 빨강(red), 초록(green), 파랑(blue) 빛을 섞어 여러 가지 빛의 색을 만들어 내려고 한다. 빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때, (빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.) 주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과 총 가짓 수를 계산해보는 문제이다. #include int main(void) { int r, g, b; scanf("%d %d %d", &r, &g, &b); int i, j, k; for (i = 0; i < r; i++) for (j = 0; j < g ; j++) for (k = 0; k < b; k++) { printf("%d %d %d\n", i, j, k); } pr..
코드업 1083번 3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다. 3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보는 문제이다. #include int main(void) { int i,n; scanf("%d", &n); printf("1"); for (i = 2; i
( C )백준 11720번(공백없이 숫자 입력하기) N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백 없이 주어진다. 처음 접근했던 방식인데, 이렇게 코드를 작성하여 주면, 문제의 조건에서처럼 한 줄에 입력받을 수가 없다. #include int main(void) { int n, i, z; int total = 0; scanf("%d", &n); for (i = 1; i
코드업 1082번(16진수 구구단) 16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운 영일(01)이는 16진수끼리 곱하는 16진수 구구단? 에 대해서 궁금해졌다. A, B, C, D, E, F 중 하나가 입력될 때, 1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자. (단, A ~ F 까지만 입력된다.) #include int main(void) { int n; int i; scanf("%X", &n); for (i = 1; i
코드업 1081번(중첩의 원리 ) 1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보는 문제이다. #include int main(void) { int n, m; int i,j = 0; scanf("%d %d", &n, &m); for (i = 1; i
코드업 1080번 1, 2, 3... 을 계속 더해 나갈 때, 그 합이 입력한 정수(0 ~ 1000) 보다 같거나 작을 때까지 계속 더하는 프로그램을 작성해보는 문제이다. 즉, 1부터 n까지 정수를 계속 더한다고 할 때, 어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다. 입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다. 처음으로 접근한 풀이방식인데, 풀다가 아닌 것 같음을 알아차리고 2번 코드 블록 방식의 풀이로 접근을 하였다. 1번 코드 블록 같이 작성을 하면 출력 값을 확인하려면 상당히 오래 키보드를 눌러야 할 것 같다. printf의 끝을 알리는 ; 옆에 break문이라도 있으면, 조금 더 편하겠지만 마찬가지로 오답이다. break가 있을 경우에는 어떤 정수를 입력하든 1이 나..