반응형
https://www.acmicpc.net/problem/2562
문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
접근 방법
- 배열의 크기는 9개로 고정 -> arr[9] 생성
- 배열에 Input 받음 배열을 순회하며 최대값을 찾는다
- 최대값의 위치 : cnt 증가
- 최대값 저장 : max 업데이트
정답 코드
#include <iostream>
using namespace std;
int main(){
int arr[9];
for (int i = 0; i < 9 ; i++){
cin >> arr[i];
}
int max = 0;
int cnt = 0;
for(int i = 0; i < 9; i++){
if(max < arr[i]){
max = arr[i];
cnt = i+1;
}
}
cout<< max <<endl;
cout << cnt;
return 0;
}
코드 설명
int arr[9];
for (int i = 0; i < 9 ; i++){
cin >> arr[i];
}
- 주어지는 수가 9개로 고정되어있기 때문에 고정 배열 형성 가능
- 배열을 형성하고 순차적으로 배열에 값을 입력한다
int max = 0;
int cnt = 0;
for(int i = 0; i < 9; i++){
if(max < arr[i]){
max = arr[i];
cnt = i+1;
}
}
- 최댓값을 담을 변수 max와 최댓값의 순서를 담을 cnt 변수를 0으로 초기화하며 선언해준다
- 이때 쓰레기 값을 자동으로 가질 수 있기 때문에 반드시 0으로 초기화를 시켜준다
- 배열을 순회하며 max 값을 업데이트 한다.
- 순서는 1부터 시작하기 때문에 해당 인덱스의 +1값을 cnt에 저장한다.
채점 결과
메모리 2056 KB
시간 0 ms
반응형