본문 바로가기

Coding Tests/코드업

(29)
( C ) Code_UP 1098번 https://codeup.kr/problem.php?id=1098 [기초-2차원배열] 설탕과자 뽑기 C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 codeup.kr 간단하면서도, 간단하지 않은 그런 문제였습니다. 풀던 중 저의 코드에서 예외가 발생하였는데요. 왜 그런가 살펴보겠습니다. 예외 발생(0x00007FF605141A50, Project1.exe): 0xC0000005: 0x00007FF60515B000 위치를 기록하는 동안 액세스 위반이 발생했습니다.. #include int arr[100][100]; int main() { int w, h, n..
( 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
코드업 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이 나..
코드업 1055번(논리연산자 || 사용) 두 개의 참(1) 또는 거짓(0)이 입력될 때, 하나라도 참이면 참을 출력하는 프로그램을 작성해보는 문제이다. #include int main(void) { int a, b; scanf("%d %d", &a, &b); if ((a != 0) || (b != 0)) printf("1"); else printf("0"); return 0; } || 는 or라고 생각해주면 될 것 같다. or는 하나라도 1이 있으면 1을 반환하는 연산이다.