프로그래머스/Python
[프로그래머스] 푸드 파이트 대회 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 7. 12. 16:27
728x90
반응형

프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명


2. 풀이과정
- 물을 기준으로 앞, 뒤로 배치해야 하므로 appendleft() 함수와 append() 함수를 사용하기 위해 deque 자료구조를 활용한다. deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque
- 각 음식 배치를 저장할 deque을 생성한다. d = deque()
- 처음에 기준이 되는 물을 배치한다. 각 음식은 인덱스 값을 추가한다. d.append(0)
- 각 음식을 추가하는 방식으로 배치하기에 음식을 칼로리가 높은 순으로 불러온다. for i in range(len(food) - 1, 0, -1)
- 불러온 음식의 개수를 2로 나눈 몫만큼 각 사람당 먹을 수 있다. for _ in range(food[i] // 2)
- 각 음식의 수만큼 반복하며 각 사람당 배치를 한다. d.appendleft(i) d.append(i)
- 음식의 배치를 모두 마치면 deque의 각 원소를 추출하여 문자열로 저장한다. for i in d: answer += str(i)
반응형
3. 소스코드
from collections import deque
def solution(food):
answer = ''
d = deque()
d.append(0)
for i in range(len(food) - 1, 0, -1):
for _ in range(food[i] // 2):
d.appendleft(i)
d.append(i)
for i in d:
answer += str(i)
return answer728x90
반응형