반응형
출처 => https://www.acmicpc.net/problem/2562
문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫 째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
예제 입력 1 복사
3
29
38
12
57
74
40
85
61
예제 출력 1 복사
85
8
소스코드 및 실행결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include<iostream>
using namespace std;
int main() {
int A[9];
int cnt = 0;
for (int i = 0; i < 9; i++) {
cin >> A[i];
}
int num = 0;
for (int i = 0; i < 9; i++) {
if (num < A[i]) {
num = A[i];
cnt = i+1;
}
}
cout << num <<endl;
cout<< cnt ;
}
|
cs |
오답 원인
아래는 내가 틀린 소스코드이다.
#include<iostream>
using namespace std;
int main() {
int A[9];
int cnt = 0;
for (int i = 0; i < 9; i++) {
cin >> A[i];
}
int num = A[0];
for (int i = 0; i < 9; i++) {
if (num < A[i]) {
num = A[i];
cnt = i+1;
}
}
cout << num <<endl;
cout<< cnt ;
}
정답으로 제출한 소스코드와의 차이점은 바로 10번째 줄이다.
//정답
int num = 0;
//내가 작성한 오답풀이
int num = A[0];
왜 틀렸느지는 모르겠지만 앞으로 최댓값을 작성할 때는 최댓값이나 최솟값을 0으로 초기화를 시킨 다음 배열 전체의 수와 비교를 하는 식으로 풀어야겠다.
728x90
반응형
'💻 개인공부 💻 > 알고리즘' 카테고리의 다른 글
[백준 -10809번] 알파벳 찾기 (feat. strlen( ), 아스키 코드) (0) | 2020.08.02 |
---|---|
[백준 - 8958] OX퀴즈 (0) | 2020.08.01 |
[백준 - 1110] 더하기 사이클 (0) | 2020.07.31 |
[백준 - 10951] A+B - 4 (feat. EOF) (0) | 2020.07.31 |
[백준 - 10171] 고양이 (0) | 2020.07.31 |