문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
# sol.1 - 빈 리스트 정의하고, 반복문으로 입력받기(40ms)
list = []
for i in range(9):
list.append(int(input()))
print(max(list))
print(list.index(max(list))+1)
# sol.2 - list comprehension 리스트 컴프리헨션(40ms)
num_list = [int(input()) for i in range(9)]
print(max(num_list))
print(num_list.index(max(num_list))+1)
** list comprehension 표현식 : 리스트를 쉽고 짧은 표현식으로 단축할 수 있는 식
-> 리스트 안에 for 반복문, if문 등을 지정하여 리스트를 생성한다.
표현식 이름 = [for 문에서 실행할 동작 for i in ___ ]
'Algorithm > 백준' 카테고리의 다른 글
[파이썬/백준 11720] 숫자의 합 (0) | 2023.02.18 |
---|---|
[파이썬/백준 5597] 과제 안 내신 분..? - 리스트 컴프리헨션 사용 (0) | 2023.02.17 |
[파이썬/백준 10818] 최소, 최대 - min, max() 또는 sort() (0) | 2023.02.16 |
[파이썬/백준 10871] X보다 작은 수 (0) | 2023.02.16 |
[파이썬/백준 10807] 개수 세기 - list.count() (0) | 2023.02.16 |