티스토리 뷰
[Python] 백준 알고리즘 온라인 저지 5543번 : 상근날드
Python3 코드
1. for문으로 burger, drink 리스트 생성 후 세트 가격을 구하는 코드
burger = []
for _ in range(3): # 3번은 버거가격
burger.append(int(input()))
drink = []
for _ in range(2): # 2번은 음료가격
drink.append(int(input()))
min_set = min(burger) + min(drink) - 50 # 세트가격 = 버거가격+음료가격-50
print(min_set)
2. list comprehension 표현식으로 작성한 코드
burger = [int(input()) for _ in range(3)]
drink = [int(input()) for _ in range(2)]
print(min(burger) + min(drink) - 50)
Python3 코드 풀이
1. 코드 풀이에 대한 전체적인 설명
이번 문제는 버거 가격 3개와 음료 가격 2개를 입력받고서 가장 싼 세트 가격을 출력하는 문제이다. 세트는 버거와 음료의 가격을 합하고 50을 뺀 가격이다.
문제를 풀기 위해서 버거와 음료 리스트를 생성하였고 min 함수로 두 리스트에서 가장 적은 수를 찾았다. 두 수의 조합에서 가장 작은 수를 더한 값이 가장 작은 것은 당연하기 때문에 각 리스트의 min 값을 구하고 세트 가격을 구하기 위해 50을 빼주었다.
burger, drink 리스트를 생성할 때는 두 개의 for문을 이용해서 입력받았다. for문은 list comprehension 표현식을 이용해서 한 줄로 표현 가능하기 때문에 comprehension 코드도 작성해서 제출해 보았다.
2. comprehension 표현식에 대한 설명
파이썬에서 for문을 한 줄로 표현할 수 있는 표현방식이다. 사용 형태는 [ 실행할 문장 for 변수 in 데이터 ]의 형태로 사용한다. for 이하 문장은 일반적으로 사용하는 for문의 첫째줄을 그대로 옮겨 적으면 되고 보통 for문에서 들여 쓰기 해서 작성하는 for문 안에서 실행할 문장을 comprehension에서는 맨 앞에 적는 것이 특징이다. 사용 예시를 보면 아래와 같다. 위의 코드에서 버거 리스트를 작성한 문장으로 살펴본다.
burger = [int(input()) for _ in range(3)]
3. min( ) 함수의 사용 예시
min 함수는 튜플, 리스트와 같이 반복 가능한 여러 개의 요소를 갖고 있는 자료형에서 최솟값을 찾아준다. 최솟값이 여러 개인 경우에도 한 개의 값만 출력하는 함수이다. 사용 예시를 보면 아래와 같다.
>>> numbers = [1, 5, 9]
>>> print(min(numbers))
1
>>> print(min([5, 5, 5, 10, 20, 30])) # 최솟값이 여러개인 경우에도 하나만 출력
5
'파이썬 스킬업 > 백준 알고리즘 연습' 카테고리의 다른 글
백준 2446번 [파이썬 알고리즘] 별 찍기 - 9 : zip함수 이용 (0) | 2020.07.05 |
---|---|
백준 1110번 [파이썬 알고리즘] 더하기 사이클 (0) | 2020.07.04 |
백준 10951번 [Python] A+B - 4 : try - except 구문 활용 (1) | 2020.07.04 |