신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

최댓값

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

 

2562번: 최댓값

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

www.acmicpc.net

문제 풀이는 글 아래에 있습니다.


문제

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

예를 들어, 서로 다른 9개의 자연수

3, 29, 38, 12, 57, 74, 40, 85, 61

이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

입력

첫 째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.

출력

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.


예제

예제 입력

3
29
38
12
57
74
40
85
61

예제 출력

85
8

 


Python 문제 풀이

2가지 방법으로 풀어봤습니다.

 

첫번째 방법

import sys


def solution(n):
    """첫번째 방법"""
    max_num = float("-inf")
    max_index = -1
    for _ in range(n):
        num = int(sys.stdin.readline().strip())

        if max_num < num:
            max_num = num
            max_index = _ + 1
        else:
            pass

    print(max_num)
    print(max_index)


if __name__ == "__main__":
    solution(9)

파이썬에서 제공해주는 메소드를 사용하지 않고, if 문을 이용하여 풀었습니다.

 

두번째 방법

import sys


def solution2(n):
    """두번째 방법"""
    num_list = list()
    for _ in range(n):
        num_list.append(int(sys.stdin.readline().strip()))

    max_num = max(num_list)

    print(max_num)
    print(num_list.index(max_num) + 1)


if __name__ == "__main__":
    solution2(9)

.index() 메소드 사용하여 해당 원소의 인덱스를 가져오는 방법으로 풀었습니다.

.index(num) 메소드는 리스트 중 num 값을 가진 원소의 인덱스를 반환합니다.


정답 확인

첫번째 방법 (아래) / 두번째 방법 (위)

 

본 글은 직접 문제를 풀어보고 작성한 글입니다.
더 좋은 방법이 있거나 틀린부분이 있다면 댓글로 공유해주세요!
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기