본문 바로가기

전체 글

(295)
( C )백준 1008번 A/B #include int main(void) { int A, B; scanf("%d %d", &A, &B); printf("%.9f", (double)A / (double)B); return 0; } 예전에 풀었고 맞았던 문제이지만, 한번 더 풀어 보던 중 문제 지문의 출력 부분에서 정답과 출력 값의 절대 오차 또는 상대오차가 10의 -9승 이하이면 정답이다.라는 말에서 절대 오차와 상대오차가 무엇인지 찾아보았다. c언어에서 float형은 상대오차가 10의 -7승 정도이고 double형은 10의 -15승 정도로 float형은 유효숫자 7자리까지 double형은 15자리이하까지 정확하게 표현이 가능하다는 뜻이다. 그러므로 문제에서 오차가 10의 -9승 이하이면 정답이라 했으므로 이의 범위를 포함시키는 dou..
( 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프로그래밍 문제16-1번(2차원 배열 활용) #include int main(void) { int arr[5][5]; int i, j; int total = 0; for(i =0;i
열혈 c프로그래밍 문제 16-1번 (2차원 배열 활용) p349 그림(그림 생략)에서 제시하는 배열 A와 B를 보고, 배열 A는 선언과 동시에 초기화를 하고, 배열 B는 반드시 배열 A를 이용해 초기화를 진행해주어야 하는 문제이다. (오답) #include int main(void) { int arr[2][4] = { {1,2,3,4}, {5,6,7,8} }; int arr2[4][2]; int i, j; for (j = 0; j < 4; j++) { for (i = 0; i < 2; i++) { arr2[j][i] = arr[i][j]; } } for (j = 0; j < 4; j++) { for (i = 0; i < 2; i++) printf("%d", arr[j][i]); printf("\n"); } return 0; } 풀이 방식은 맞았으나, 마지막 ..
열혈 c프로그래밍 문제16-1번(2차원 배열 활용) 문제를 좀 잘못 읽고 푼 풀이인데, 출력의 결과로 2단 3단 4단이 나온다. #include int main(void) { int arr[3][9] = { {2,4,6,8,10,12,14,16,18}, {3,6,9,12,15,18,21,24,27}, {4,8,12,16,20,24,28,32,36} }; int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 9; j++) { printf(" %d x %d = %d \n", i + 2, j + 1, arr[i][j]); } printf("\n"); } return 0; } #include int main(void) { int arr[3][9]; int i, j; for(i = 0;i