티스토리 뷰

 

[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을 더해주어야 한다. 

 

반응형
댓글
반응형