파이썬/코딩테스트

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

대전집주인 2024. 3. 23. 16:42
728x90
SMALL

 

문제 이해

  • 음식의 나열을 적은 칼로리부터 큰 칼로리로
  • 왼쪽 오른쪽 같이 배열 중간에는 물로서 0이 들어가야 한다.
  • food의 0 인덱스는 남은 음식이어서 인데스 1부터 123시작

왼쪽 선수와 오른쪽 선수의 음식의 나열이 같으므로 리스트에 담아서 나열하고 중간에 0을 삽입후 역정렬한 리스트를 나열시켜서 문제를 해결하였다.

 

def solution(food):
    answer = ''
    del(food[0])
    list = []
    num = 0
    
    for i in food:
      if i%2 == 1:
        i -= 1
      num += 1
      for j in range(int(i/2)):
        list.append(num)
        
    answer = ''.join(map(str, list)) + '0'
    list.sort(reverse=True)
    answer += ''.join(map(str, list)) 
    return answer
728x90
LIST