티스토리 뷰
[Python] 백준 알고리즘 온라인 저지 2562번 : 최댓값
Python3 코드
1) 9개의 수를 for문으로 입력받는 코드
numbers = []
for _ in range(9):
i = int(input())
numbers.append(i)
print(max(numbers))
print(numbers.index(max(numbers))+1)
2) for문을 list comprehension 으로 작성한 코드
numbers = [int(input()) for _ in range(9)]
print(max(numbers))
print(numbers.index(max(numbers)) + 1)
Python3 코드 풀이
1. 작성한 코드에 대한 전체적인 내용 정리
이 문제는 9개의 숫자를 입력 받으면 입력받은 수 중 가장 큰 숫자의 값과 순서를 출력하는 문제이다. 입력받은 숫자로 리스트를 먼저 생성하고 가장 큰 숫자는 max 함수를 사용해서 찾았다. 또 가장 큰 값이 몇 번째 순서인지는 index 함수를 이용해서 찾았는데 index 함수의 순서는 0번째부터 시작하기 때문에 1을 더해주었다.
숫자를 입력 받는 문장은 한 줄에 하나씩 9번을 입력받기 때문에 for문을 이용하였고 list comprehension 표현식으로 한 줄로 작성해보기도 했다.
2. 코드 상단, 숫자를 입력 받아 리스트를 생성하는 코드 두 종류를 비교해본다.
2-1. for문 코드
numbers = []
for _ in range(9):
i = int(input())
numbers.append(i)
2-2. list comprehension
numbers = [int(input()) for _ in range(9)]
코드 윗쪽은 for문으로 작성한 코드이고 아래쪽은 한 줄로 list comprehension 표현식으로 작성하였다. for문 코드가 복잡하지 않은 경우 comprehension 표현식으로 작성하면 코드를 짧게 단축할 수 있어 편리하다.
for문으로 작성 할 때는 변수에 빈 리스트를 먼저 생성하고서 for문의 실행할 문장에서 하나씩 입력받는 숫자를 append 함수로 요소를 추가한다.
comprehension 표현식은 [ 실행 문장 for 변수 in iterable 자료형 ] 형태로 작성할 수 있다. for문에서 실행할 문장을 가장 앞에 작성하고 뒤에는 for문의 맨 첫째줄에 적는 형태를 그대로 입력하면 된다. append 함수를 사용하지 않아도 for문으로 생성되는 값들이 리스트의 요소가 된다.
3. 코드 하단, 리스트에서 가장 큰 수와 순서를 출력한다.
print(max(numbers))
print(numbers.index(max(numbers)) + 1)
max 함수로 리스트의 가장 큰 수를 찾고 index 함수로 위치를 찾는다. 이 때, 인덱스는 0부터 시작하니까 1을 더해주어야 한다.
'파이썬 스킬업 > 백준 알고리즘 연습' 카테고리의 다른 글
백준 2577번 [파이썬 알고리즘] : 숫자의 개수 _ count함수 활용 (4) | 2020.07.05 |
---|---|
백준 10996번 [파이썬 알고리즘] 별 찍기 - 21 (0) | 2020.07.05 |
백준 2446번 [파이썬 알고리즘] 별 찍기 - 9 : zip함수 이용 (0) | 2020.07.05 |