♕Bronze Ⅱ
문제
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
입력을 받으면서 최댓값을 동시에 구해나가도록 풀이했다. 최댓값을 max변수에 담아주고 해당 인덱스를 where변수에 저장해서 출력하도록 했다.
C
#include <stdio.h> int main() { int num[9], max=0, where=0; for(int i = 0; i < 9; i++){ scanf("%d",&num[i]); if(num[i] > max){ max = num[i]; where = i+1; } } printf("%d\n%d",max,where); return 0; }
where = i+1에서 +1을 해준 이유는 인덱스가 0부터 시작하기 때문이다.
몇 번째 수인지 구할 때 코드를 어떻게 짜야할까 고민을 꽤 했다. 한 줄이면 됐는데 새벽이라 머리가 잘 안 돌아가는 건가 싶었다. 그래도 오래 걸리지 않아서 다행이라고 생각한다.