2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다.
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
한번 틀렸었는데 질문 게시판에서 그 이유를 찾아보니
max = store[0];
for (int i = 1; i < 9; i++) {
max = max > store[i] ? max : store[i];
if (max == store[i])
count = i;
}
이 max와 max의 index를 찾는 부분이 문제였다. 만약 max가 store[0] 이라면 index가 저장되지 않았다.
백준을 하며 컴퓨터가 채점을 해주니 좋은 점은 내가 넣어본 값에 대한 결과값만 나왔을 때는 모를 수 있었던 예외 사항을 잘 찾아준다는 것이었다.
// 최대값
#include <iostream>
using namespace std;
int main() {
int max, count, store[10];
for (int i = 0; i < 9; i++)
cin >> store[i];
max = -1;
for (int i = 0; i < 9; i++) {
max = max > store[i] ? max : store[i];
if (max == store[i])
count = i;
}
cout << max << '\n' << count + 1;
}