본문 바로가기

알고리즘

[백준] 2562번: 최댓값(java, python)

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

 

2562번: 최댓값

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

www.acmicpc.net


💡주의 사항

-


🗒 풀이

java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int max = -1;
        int index = 0;
        for (int i = 0; i < 9; i++) {
            int num = sc.nextInt();
            if (num > max) {
                max = num;
                index = i+1;
            }
        }
        sc.close();
        System.out.println(max);
        System.out.println(index);
    }
}
  • 최대값을 저장하는 max, 그 값의 인덱스를 저장하는 index 변수 생성
  • 9번의 반복문 실행동안 max와 index를 변경하고, 마지막 줄에 출력한다

python

num_list = []
for i in range(9):
    num_list.append(int(input()))
max_val = max(num_list)
idx = num_list.index(max_val) + 1
print(max_val)
print(idx)
  • 평소에 쓰던 list(map(int, input().split()))을 쓰지 않은건, 입력 예제처럼 한줄마다 받아오게끔 해야하는데 map을 사용하게 되면 enter을 치자마자 입력한 하나의 값만 저장되기 때문
  • 자바와 마찬가지로 9번의 for문을 돌려 num_list라는 리스트에 저장
  • max함수를 사용하여 해당 리스트의 최대값을 구함
  • list.index(element) 함수를 사용하여 최대값의 인덱스를 구함. 이 때 배열은 인덱스가 0부터 시작하므로 1을 더해줌
  • 마찬가지로 마지막 줄엔 print