본문 바로가기
카테고리 없음

[백준 2562 | C++]최댓값_ 배열 순회, 1차원 배열(array loop, for)

by 솨앙 2025. 1. 4.
반응형

https://www.acmicpc.net/problem/2562

문제

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

백준_2562_최댓값

접근 방법

- 배열의 크기는 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

반응형