코딩/백준 문제 (실버) 19

[백준/1181/C언어] 단어 정렬 _ 풀이

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 #include #include #include typedef struct { int len; char ss[51]; }word; int compare(const void* first, const void* second) { word a = *(word*)first; word b = *(word*)second; // 문자열 길이를 오름차순으로 if (a.len < b.len) re..

[백준/11650/C언어] 좌표 정렬하기 _ 풀이

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이 처음 풀이 (틀림) #include #include int compare(const void* first, const void* second) { int num1 = *(int*)first; int num2 = *(int*)second; if (num1 num2) return ..

[백준/25206/C언어] 너의 평점은 _ 풀이

https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 풀이 #include // 입력부분에서과목명,학점, 등급을 보고 구조체 사용을 알아채야함 struct score { char sn[51];// 과목명 double n;// 학점 char gr[3];// 등급 }; int main() { struct score ch;// 치훈이 double avr;// 전공평점 double grn;// 과목평점 double total = 0, nsum = 0;// 전공과..

[백준/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 + ..

[백준/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..

[백준/1316/C언어] 그룹 단어 체커 _ 풀이

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 풀이 #include int main() { int n; char s[101]; int cnt = 0; int j, flag; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%s", s);// 문자열 입력 j = 0;// 초기화 flag = 0;// 초기화 char tmp[101] = {};// 초기화를 위해 반복문..

[백준/1193/C언어] 분수찾기 _ 풀이

https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 풀이 #include int main() { int x; scanf("%d", &x); int n = 1; while (1) { // x 범위 찾기 if (n * (n - 1) / 2 + 1 = x) break; else n++; } int i, j; if (n % 2 == 0) {// n이 짝수일때 i = x - (n - 1) * n / 2;// 분자 j = (n + 1) - i;// 분모 } else{// n이 홀수일때 i = (n + 1) - j;// 분자 j = x - (n - 1) * n / 2;// 분모 } print..

[백준/11728/C언어] 배열 합치기 _ 풀이

https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 풀이 선택정렬(내림차순)을 활용한 필자의 초기 풀이 (답x) #include int a[1000000], b[1000000]; int ab[1000000]; int main() { int an, bn; int temp; scanf("%d %d", &an, &bn); for (int i = 0; i < an; i++) scanf("%d", &a[i]); for (..

[백준/1026/C언어] 보물 _ 풀이

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 풀이 #include int main() { intn;// 50까지 int a[51], b[51];// a의 배열, b의 배열 int a_re[51], b_re[51];// a의 재배열, b의 '원소'재배열(b의 재배열 x) int s = 0;// 최소 합 int cnt = 0; scanf("%d", &n);// 길이 입력 for (int i = 0; i < n; i++)// a배열 원소 ..