728x90
📌 문제
2562번: 최댓값
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어
www.acmicpc.net
📌 내 코드
# 2562 최댓값
import sys
input= sys.stdin.readline
num = [0]+[int(input()) for _ in range(1, 10)]
print(max(num), num.index(max(num)), end='\n')
💡 풀이
- 여러 숫자들을 입력받기 때문에 리스트 형태로 받아줬다.
- 여기서 주의할 것은 리스트의 경우 인덱스가 0부터 시작하기 때문에 1부터 시작할 수 있도록 해야 한다.
나의 경우, [0]을 앞에 더해주어 인덱스 0의 자리를 채워줬다. - max() 함수를 통해 리스트 num 내에서 최댓값을 찾아내고,
num.index()를 통해 최댓값이 위치하는 위치 (인덱스)를 찾아낸다. - 이후 줄바꿈 해주어 출력해줄 수 있도록 했다.
📌 정리
리스트 자료형이 인덱스가 0부터 시작하는 것 때문에 위치를 출력하는 부분에서 고민을 많이 했다. 인덱스를 출력하는 게 제일 간단한 방법이라고 생각했었으니까
이전에 스터디했을 때 인덱스를 1부터 시작할 수 있게 했었는데 도무지 기억나지 않아서 문제 푸는 걸 잠깐 멈추고 다른 걸 하고 있었는데, 순간적으로 [0]을 앞에 더해주면 인덱스 0에는 예제값 안 들어가지 않나? 라는 생각이 스쳐지나가서 그대로 코드를 작성했고, 맞출 수 있었다. 해당 문제는 읽자마자 어떻게 하면 되겠다 감을 잡은 문제였는데, 생각보다 시간을 너무 많이 잡아먹었다.
아무래도 진짜 파이썬 기초 복습 꾸준히 해야 할 것 같다....😭
적극적인 피드백은 언제나 환영입니다:)