전체 글
[BOJ/백준] 8958번 OX퀴즈 C++ 문제 풀이
단계별로 풀어보기 - 1차원 배열 - [6단계] 8958번 문제 문제 링크 : www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수�� www.acmicpc.net 입력 복사 : 5 OOXXOXXOOO OOXXOOXXOO OXOXOXOXOXOXOX OOOOOOOOOO OOOOXOOOOXOOOOX CODE #include #include using namespace std; int main() { int n; string str; int count = 0; int resul..
[BOJ/백준] 1546번 평균 C++ 문제 풀이
단계별로 풀어보기 - 1차원 배열 - [5단계] 1546번 문제 문제 링크 : www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 입력 복사 : > 예제 입력 1 3 40 80 60 > 예제 입력 2 3 10 20 30 > 예제 입력 3 4 1 100 100 100 > 예제 입력 4 5 1 2 4 8 16 > 예제 입력 5 2 3 10 CODE #include using namespace std; int main() { int n; int score[100..
[BOJ/백준] 3052번 나머지 C++ 문제 풀이
단계별로 풀어보기 - 1차원 배열 - [4단계] 3052번 문제 문제 링크 : www.acmicpc.net/problem/3052 3052번: 나머지 39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다. www.acmicpc.net 입력 복사 : 39 40 41 42 43 44 82 83 84 85 CODE #include using namespace std; int main() { int num; int rm[42] = { 0 }; int count = 0; for (int i = 0; i > num; rm[num % 42]++; ..
[BOJ/백준] 2577번 숫자의 개수 C++ 문제 풀이
단계별로 풀어보기 - 1차원 배열 - [3단계] 2577번 문제 문제 링크 : www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net 입력 복사 : 150 266 427 풀이 입력 받은 숫자의 곱을 처리할 때, string으로 변환하여 처리하였다. 숫자로 처리하면 그 길이를 알기 어렵기 때문에 string으로 변환하여 각 문자의 숫자를 세었다. 숫자를 string으로 변환하는 데에는 to_string()함수를 사용하였다. num_result 배열에 값을 저장할 때 사용한 인덱스에서는 문자 0을 빼고 사용하였다. 그 이유..
[BOJ/백준] 2562번 최댓값 C++ 문제 풀이
단계별로 풀어보기 - 1차원 배열 - [2단계] 2562번 문제 문제 링크 : www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 입력 복사 : 3 29 38 12 57 74 40 85 61 풀이 지난 문제에서는 sort함수를 통해 배열을 정렬했지만, 최댓값의 위치를 알아야 하는 이번 문제에서는 그러한 방식을 사용하기는 어렵습니다. 따라서 입력 받은 수를 maxvalue에 저장된 값보다 클 경우, 값을 maxvalue에 저장하고 ..
[BOJ/백준] 10818번 최소, 최대 C++ 문제 풀이
단계별로 풀어보기 - 1차원 배열 - [1단계] 10818번 문제 문제 링크 : www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 입력 복사 : 5 20 10 35 30 7 풀이 algorithm 헤더파일 내부에 있는 sort함수를 이용하여 배열 내의 원소들을 오름차순으로 정렬했습니다. 입력 받은 값들을 각각 비교하여 최소, 최대 값을 도출할 수 있지만, 배열을 정렬하여 첫번째, 마지막 원소를 보여주는 방법을 택했습니다. s..
[BOJ/백준] 1110번 더하기 사이클 C++ 문제 풀이
단계별로 풀어보기 - while문 - [3단계] 1110번 문제 문제 링크 : www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 입력 복사 : > 예제 입력 1 26 > 예제 입력 2 55 > 예제 입력 3 1 > 예제 입력 4 0 CODE #include using namespace std; int main() { int n; int cnt = 0; int num, temp; cin >> n; num = n; while (1) { temp = ..
[BOJ/백준] 10951번 A+B - 4 C++ 문제 풀이
단계별로 풀어보기 - while문 - [2단계] 10951번 문제 문제 링크 : www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 입력 복사 : 1 1 2 3 3 4 9 8 5 2 풀이 간단하게 생각하여 다음과 같이 코드를 작성하면 '출력 초과' 결과가 뜬다. int a, b; while (1) { cin >> a >> b; cout a >> b; if(cin.eof() == true) { break; } cout a >> b) { cout
[BOJ/백준] 10952번 A+B - 5 C++ 문제 풀이
단계별로 풀어보기 - while문 - [1단계] 10952번 문제 문제 링크 : www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 입력 복사 : 1 1 2 3 3 4 9 8 5 2 0 0 CODE #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int a, b; while (1) { cin >> a >> b; if (a != 0 && b != 0) { cout
[BOJ/백준] 10871번 X보다 작은 수 C++ 문제 풀이
단계별로 풀어보기 - for문 - [11단계] 10871번 문제 문제 링크 : www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 입력 복사 : 10 5 1 10 4 9 2 3 8 5 7 6 CODE #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, x; int arr[10000] = {}; cin >..