1. 문제 상세
https://www.acmicpc.net/problem/2562
2. 문제 접근
1차원 배열을 활용하여 입력받은 정수 중에 최댓값과 그 값의 인덱스를 찾아보는 문제이다.
먼저 크기가 9인 정수형 배열을 선언하고, 반복문을 사용해 9개의 정수를 입력받아 배열에 저장한다.
최댓값과 해당 값이 저장된 배열의 인덱스를 저장할 변수를 선언한다.
반복문으로 입력받은 정수의 개수만큼 반복하며 최댓값과 비교하며 큰 값을 변수에 저장하고, 해당 값이 저장된 배열 인덱스를
따로 저장한다.
즉 반복문에서 카운터 변수기 i 라고 할 때, i 를 배열의 인덱스로 하여 배열의 값들을 확인 하기 때문에
비교 후 최대값 변수에 배열 i 번 인덱스의 값이 저장된다면, 인덱스 저장 변수에 i+1 을 저장한다.
혹은 i 를 저장하고 출력 할 때 1을 더해준다.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int a[9], max = 0, index = 0;
for(int i = 0; i < 9; i++) {
cin >> a[i];
if(max <= a[i]) {
max = a[i];
index = i;
}
}
cout << max << "\n" << index+1;
}
크기가 9인 정수형 배열 a 를 선언, 정수형 변수 max 와 index 를 선언.
for문으로 i 가 0 일때 부터 9 보다 작을 때 1씩 더하며 반복하도록 한다.
반복문에서는 if문으로 max 의 값이 배열 a 의 i 번 인덱스의 값보다 작거나 같다면 max 에 a 의 i 번 인덱스의 값을 저장하고, index 에는 i 값을 저장한다.
반복문이 끝나면 cout 으로 max 와 index + 1 의 값을 출력한다.
4. 성능 확인
5. 마무리
이번 단계의 이전 문제들도 그렇고 이번 문제도 굳이 배열을 사용하지 않아도 되는 문제이긴 하지만..
단계가 1차원 배열 단계인 만큼
1차원 배열을 최대한 활용해보면서 문제를 풀어봐야겠다.
'백준 - 단계별로 풀어보기 > 1차원 배열' 카테고리의 다른 글
[백준] 10813번 : 공 바꾸기 | C++ (0) | 2023.09.21 |
---|---|
[백준] 10810번 : 공 넣기 | C++ (0) | 2023.09.21 |
[백준] 10818번 : 최소, 최대 | C++ (0) | 2023.09.21 |
[백준] 10871번 : X보다 작은 수 | C++ (0) | 2023.09.21 |
[백준] 10807번 : 개수 세기 | C++ (0) | 2023.09.21 |