https://www.acmicpc.net/problem/2562
# 문제상황
제가 제일 처음에 고안한 답은 아래와 같습니다.
max = 0
idx = 0
for i in range(9):
x = int(input())
if x > max:
max = x
idx = i + 1
print(max)
print(idx)
하지만 생각해보면 자동으로 최댓값을 찾아주는 max()라든지, 파이썬에서 기본으로 제공해주는 유용한 내장함수들을 거의 쓰지 않은 답안입니다. 파이썬 내장함수를 이용해서 좀 더 효율적인 코드를 짤 순 없을까요?
# 해결
우선 앞서 언급했듯이 max() 함수와 리스트의 index() 함수를 이용해 좀 더 간결하게 문제를 풀 수 있습니다.
max()는 함수 이름에서 쉽게 유추할 수 있듯, 반복 가능한 자료형을 입력 받아 그 중 최댓값을 반환해주는 함수입니다.
리스트의 index() 함수는 요소 값을 입력하면 해당 요소가 리스트의 몇 번째 인덱스에 있는지 알려줍니다. 이 두 함수를 이용하여 다음과 같은 순서로 문제를 풀면 됩니다.
1) 리스트에 숫자들을 입력받는다.
2) max() 함수를 써서 리스트 내 최댓값을 알아낸다.
3) index() 함수를 써서 최댓값의 인덱스를 알아낸다.
리스트 관련 함수를 더 알고 싶으시다면 아래 포스트를 참고하시길 바랍니다.
https://beluga9.tistory.com/337?category=1003924
# 답
a = []
for i in range(9):
a.append(int(input()))
m = max(a)
print(m)
print(a.index(m) + 1)
728x90
반응형
'Algorithm > BaekJoon' 카테고리의 다른 글
(파이썬) 백준 11720번 "숫자의 합" (0) | 2022.04.20 |
---|---|
(파이썬) 백준 4344번 "평균은 넘겠지" (0) | 2022.04.19 |
(파이썬) 백준 10871번 "X보다 작은 수" (0) | 2022.04.19 |
(파이썬) 백준 11021번 "A + B - 7" (0) | 2022.04.18 |
(파이썬) 백준 2742번 "기찍 N" (0) | 2022.04.17 |