본문 바로가기
프로그래머스/Python

[프로그래머스] 푸드 파이트 대회 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 12.
728x90
반응형

 

 

프로그래머스

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

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

  1. 물을 기준으로 앞, 뒤로 배치해야 하므로 appendleft() 함수와 append() 함수를 사용하기 위해 deque 자료구조를 활용한다. deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque
  2. 각 음식 배치를 저장할 deque을 생성한다. d = deque()
  3. 처음에 기준이 되는 물을 배치한다. 각 음식은 인덱스 값을 추가한다. d.append(0)
  4. 각 음식을 추가하는 방식으로 배치하기에 음식을 칼로리가 높은 순으로 불러온다. for i in range(len(food) - 1, 0, -1)
  5. 불러온 음식의 개수를 2로 나눈 몫만큼 각 사람당 먹을 수 있다. for _ in range(food[i] // 2)
  6. 각 음식의 수만큼 반복하며 각 사람당 배치를 한다. d.appendleft(i)  d.append(i)
  7. 음식의 배치를 모두 마치면 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 answer
728x90
반응형