C언어 63

[백준/11943/C언어] 파일 옮기기 _ 풀이

https://www.acmicpc.net/problem/11943 11943번: 파일 옮기기 첫 번째 줄에는 첫 번째 바구니에 있는 사과와 오렌지의 수 A, B가 주어진다. (0 ≤ A, B ≤ 1,000) 두 번째 줄에는 두 번째 바구니에 있는 사과와 오렌지의 수 C, D가 주어진다. (0 ≤ C, D ≤ 1,000) www.acmicpc.net 풀이 #include int main() { int a, b, c, d; scanf("%d %d %d %d", &a, &b, &c, &d); if (a + d

[백준/2941/C언어] 크로아티아 알파벳 _ 풀이

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 풀이 #include int main() { char s[101];// 문자열 scanf("%s", &s);// 입력 int i; int cnt = 0;// 단어 수 i = 0; while (s[i] != '\0') {// 문자열 끝까지 반복 // i번째 문자가 'c'이고 i+1번째 문자가 '='이거나 '-'라면 if (s[i] == 'c' && (s[i + ..

[백준/11719/C언어] 그대로 출력하기 _ 풀이

https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 풀이 #include int main() { char c; while (scanf("%c", &c) != EOF) {// 컨트롤z를 입력하기 전까지 반복입력 printf("%c", c);// 출력 } return 0; }

[백준/10872/C언어] 팩토리얼 _ 풀이

https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 #include int fac(int n); int main() { int n; scanf("%d", &n); printf("%d\n", fac(n)); return 0; } int fac(int n) {// fac(10) if (n >= 1) return n * fac(n - 1);// fac(10) = 10*fac(9) else return 1;//n이 0일때는 1 } 팩토리얼은 재귀함수로 구현하면 쉽다. fac(3) = 3*fac(2) fac(2) = 2*fac(1) fac(1) = 1*f..

[백준/3009/C언어] 네 번째 점 _ 풀이

https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 풀이 #include int main() { int nx[4], ny[4]; int minx = 100, miny = 100; for (int i = 0; i < 3; i++) { scanf("%d %d", &nx[i], &ny[i]); } if (nx[0] == nx[1]) nx[3] = nx[2]; else if (nx[0] == nx[2]) nx[3] = nx[1]; else nx[3] = nx[0]; if (ny[0] == ny[1]) ny[3] = ny[2]; else..

[백준/2563/C언어] 색종이 _ 풀이

https://www.acmicpc.net/problem/2563 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net 풀이 #include int main() { int n; int x, y;// 가로, 세로 int arr[100][100] = {0};// 가로 세로 100 int cnt = 0; scanf("%d", &n); for (int i = 0; i < n; i++) {// n번만큼 반복 scanf("%d %d", &x, &y); for (int j = 0; j < 10; j++) {// 세로 길이만큼 for (i..

[백준/2292/C언어] 벌집 _ 풀이

https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 풀이 #include int main() { long long int N; int f, a, b;// 배수변수, n-1번째항, n번째항 int cnt = 0; scanf("%lld", &N); a = 1; b = 0; for (int i = 1; i = a ..

[백준/2566/C언어] 최댓값 _ 풀이

https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 풀이 #include int main() { int arr[9][9]; int max = -1;// 최댓값 int max_i, max_j;// 최댓값의 인덱스 for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { scanf("%d", &arr[i][j]);// 행렬 채우기 if (max < arr[i][j]) {// 최댓값 구하기 max = arr[i][j]; m..

[백준/10798/C언어] 세로읽기 _ 풀이

https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 풀이 #include int main() { char s[5][15] = {}; int i, j; for (i = 0; i < 5; i++) { scanf("%s", &s[i]); } // 행과 열을 바꿔서 출력 for (j = 0; j < 15; j++) { for (i = 0; i < 5; i++) { if (s[i][j] == NULL)// s의 i행j열이 null값이여도 진행 con..

[백준/2738/C언어] 행렬 덧셈 _ 풀이

https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 풀이 #include int main() { int n, m; int a[100][100], b[100][100]; scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) {// 행 for (int j = 0; j < m; j++) {// 열 scanf("%d", &a[i][j]);// i행j열의 원소 입력 } } for (int i = 0; i..