본문 바로가기

코딩/백준 BOJ

[백준/C언어] 1546번 - 평균 백준 웹사이트 "1546번 - 평균" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 소스 코드 #include int main(void){ int N; scanf("%d", &N); int arr[N]; int max = 0; for(int i=0; i max) max = arr[i]; } double sum = 0; // double 주의 for(int j=0; j 더보기
[백준/C언어] 3052번 - 나머지 백준 웹사이트 "3052번 - 나머지" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 소스 코드 #include #include //header file for 'memset' int main(void){ int remainders[42]; memset(remainders, 0, sizeof remainders); //모든 값을 0으로 초기화 for(int i=0; i 더보기
[백준/C언어] 2577번 - 숫자의 개수 백준 웹사이트 "2577번 - 숫자의 개수" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 소스 코드 #include int main(void){ int A, B, C; scanf("%d %d %d", &A, &B, &C); int product = A*B*C; int digits[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; while(product>0){ int digit = product%10; digits[digit] = digits[digit] + 1; product.. 더보기
[백준/C언어] 2562번 - 최댓값 백준 웹사이트 "2562번 - 최댓값" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 소스 코드 #include int main(void){ int arr[9]; for(int i=0; i 더보기
[백준/C언어] 10818번 - 최소, 최대 백준 웹사이트 "10818번 - 최소, 최대" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 소스 코드 #include int main(void){ int N; scanf("%d", &N); int arr[N]; for(int i=0; i 더보기
[백준/C언어] 1110번 - 더하기 사이클 백준 웹사이트 "1110번 - 더하기 사이클" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 소스 코드 #include int main(void){ int first_N, N; scanf("%d", &first_N); N = first_N; int cycle = 0; while(1){ int digit_sum = N/10 + N%10; // N의 자릿수들의 합 N = (N%10)*10 + digit_sum%10; // 새로운 N.. 더보기
[백준/C언어] 10951번 - A+B - 4 백준 웹사이트 "10951번 - A+B - 4" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 소스 코드 #include int main(void){ int A, B; while(1){ if(scanf("%d %d", &A, &B) == EOF) // EOF는 입력의 종료를 의미. 'Ctrl+Z (^Z)'로 시행 break; else printf("%d\n", A+B); } } 문제 풀이 어렵지 않은 것을 묻는 문제임에도 불구하고, 35.398% (2021.12.29 기준)의 낮은 정답률을 보이는 문제입니다. 그 이유는 아마 'EOF (End of Fi.. 더보기
[백준/C언어] 10952번 - A+B - 5 백준 웹사이트 "10952번 - A+B - 5" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 소스 코드 #include int main(void){ int A, B; while(1){ scanf("%d %d", &A, &B); if(A==0 && B==0) break; else printf("%d\n", A+B); } } 문제 풀이 특정 조건이 만족될 때까지 루프 안의 코드가 계속해서 반복되는 while문을 이용하는 문제입니다. 조건문을 작성하는 방법에 따라 다양한 풀이 방법이 있을텐데, 저는 while(1)을 선호합니다. C언어의 경우 '0'은 fa.. 더보기