코딩 기록들

코딩테스트 연습연습문제 - 푸드 파이트 대회 본문

프로그래머스 문제기록

코딩테스트 연습연습문제 - 푸드 파이트 대회

코딩펭귄 2023. 10. 22. 03:35

def solution(food):
    foodnum = []
    foodsep = []
    a=[]
    b=[]
    num = 1
    food.remove(food[0])
    
    for i in food:    # 홀수로 준비한 음식을 짝수로 만들어준다
        if i % 2 != 0:
            foodnum.append(i-1)
        else:
            foodnum.append(i)  # foodnum = [2,4,6]
            
    for i in foodnum: # foodnum에 있는 값 = 인덱스값+1 만큼 의 음식 수
        for i in range(i): 
            foodsep.append(num)
        num += 1               # foodsep = 	[1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3]
    
    for i in range(0, len(foodsep), 2):  # a, b 배열에 값 하나씩 넣고
        a.append(str(foodsep[i])) # str로 해주는 이유는 맨밑에서 join()할때 문자열값이어야하기때문
        b.append(str(foodsep[i+1])) 
    # 위의 3줄을 아래 5줄처럼 구현해도 같음    
    # cnt = 0 
    # for i in range(int(len(foodsep) / 2)):
    #     a.append(foodsep[cnt])
    #     b.append(foodsep[cnt+1])
    #     cnt += 2
    b = list(reversed(b))   # b 배열 뒤집고
    answer = a+['0']+b      # a배열 + '0' + b배열 연결해주기
    # print(answer)
    return ''.join(answer)  # 배열을 문자열로