프로그래머스

프로그래머스 - 푸드 파이트 대회 [Python]

SS_G 2023. 6. 12. 21:10
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/134240

 

프로그래머스

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

programmers.co.kr

안녕하세요, 오늘은 프로그래머스 '푸드 파이트 대회' 문제에 대한 Python 풀이를 소개하려 합니다. 해당 문제는 대회에서 선수들이 먹는 음식의 종류와 양을 공정하게 배치하는 문제입니다.

 

문제 이해

이 문제에서 주어진 입력은 음식의 양을 칼로리가 적은 순서대로 나타내는 정수 배열입니다. 우리의 목표는 대회를 위한 음식의 배치를 나타내는 문자열을 반환하는 것입니다. 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다.

 

코드 작성

이 문제는 Python의 문자열 처리 기능을 잘 활용하면 간단하게 해결할 수 있습니다. 아래에 Python 코드를 소개하고 설명하겠습니다.

def solution(food):
    res = ''
    for i in range(1, len(food)):
        res += str(i) * (food[i]//2)
        answer =  res + '0' + res[::-1]
    return answer

 

코드 해설

먼저, 결과를 담을 빈 문자열 res를 선언합니다. 그런 다음 food 배열을 순회하며 각 음식을 반으로 나누고 해당 음식의 숫자를 해당 개수만큼 res에 추가합니다. 이는 각 선수가 같은 양의 음식을 먹기 위함입니다.

그 후, 중앙에 물(음식 번호 0)을 배치하기 위해 '0'을 추가하고, res 문자열을 뒤집어서 오른쪽 선수가 먹을 음식을 배치합니다.

마지막으로, 완성된 음식 배치 문자열 answer를 반환합니다.

 

마치며

이처럼 Python의 문자열 처리와 리스트 순회를 이용하면 이 문제를 간결하게 해결할 수 있습니다. 이 문제를 통해 파이썬의 강력한 문자열 처리 기능을 확인해 볼 수 있었습니다.

다음에 또 다른 흥미로운 문제 풀이로 찾아뵙겠습니다!

반응형