728x90
https://www.acmicpc.net/problem/2562
문제 설명
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
풀이 과정
- 나의 풀이
① 이 문제에서 직관적으로 파악한 것은 "9개의 자연수가 하나씩 차례대로 입력되면 어디에 저장되어 저장된 공간에서의 최댓값과 몇 번째로 저장되었는지에 대해 출력해주는 것이구나"이다.
② 차례대로 입력되는 값을 저장하기 위한 저장 공간을 num_lst라는 빈 리스트로 설정하고 num_lst 내에서 요소들 간의 크기 비교를 통해 최댓값을 출력하고 그 최댓값의 인덱스값+1을(인덱스는 0부터 시작하기 때문에) 출력해야겠다고 생각하였다.
## 내 풀이
num_lst = [] ## 입력값을 받을 빈 리스트 생성
empty_lst = []
for i in range(0,9):
num_lst.append(int(input())) ## 입력값 받기
result_lst = num_lst + empty_lst ## num_lst는 조작하기에 입력받은 값을 담은 num_lst와 똑같이 생긴 result_lst 만들기
for i in range(0,8) : ## num_lst 내에서 요소들 간의 크기 비교를 통해 최댓값을 마지막 인덱스 번호로 밀기
if num_lst[i] > num_lst[i+1] :
num_lst[i+1] = num_lst[i]
print(num_lst[-1]) ## num_lst의 마지막 인덱스 요소 출력
print(result.index(num_lst[-1])+1) ## 최댓값이 몇번째 수인지 출력
- 모범 답안
## 모범답안
num_list = []
for i in range(9) :
num_list.append(int(input())) ## num_lst 안에 입력된 값들 차례대로 넣기
print(max(num_list)) ## max라는 메소드를 이용해 num_lst 내의 최댓값 출력하기
print(num_list.index(max(num_list))+1)
후기
리스트 내의 최댓값을 알려주는 max라는 메소드를 알지 못해 리스트 내 요소 간의 크기 비교를 하나씩 다 했다. 참고로 max 메서드뿐만 아니라 min 메서드 또한 존재한다!
'Algorithm' 카테고리의 다른 글
[백준] 11718 그대로 출력하기 파이썬(Python) (0) | 2021.07.10 |
---|---|
[백준] 1935 후위 표기식2 (파이썬 Python) (0) | 2021.07.10 |
[백준] 2743 단어 길이 재기 (파이썬 Python) (0) | 2021.07.08 |
[백준] 9012 괄호 (파이썬 Python) (0) | 2021.07.08 |
[백준] 11729 하노이 탑 이동 순서 (파이썬 Python) (0) | 2021.07.08 |