📍 문제 설명

📍 풀이 point
1) 음식은 무조건 짝수 개로 되어야 배식 가능하기 때문에 우선 2로 나누고 몫을 구한다.
2) 해당 몫은 한 사람이 먹을 수 있는 음식의 수를 의미한다.
3) 따라서 해당 번호의 음식의 수 * 몫을 하여 음식 순서에 따라서 한 사람이 먹는 음식의 수 문자열을 만든다.
4) 그 후 물을 붙이고(문자열에 0을 붙이고) 3번 과정에서 만든 문자열을 거꾸로하여 붙여준다(다른 사람이 먹는 음식).
def solution(food):
result = ""
for i in range(1,len(food)):
d = food[i] // 2
result+= str(i) * d
result = result + "0"
result2 = list(result)
for j in range(len(result2)-2,-1,-1):
result2.append(result2[j])
return ("").join(result2)
나는 물에 도달하기 전(0이 나오기 전)까지의 부분을 완성한 뒤 0을 붙이고 완성한 부분을 거꾸로 붙여 나머지 반을 완성하는 방법을 사용하였다.
코드를 조금 더 간결하게 만들고 싶어 아래 부분 다섯 줄을 한 줄로 줄여 다시 작성했다.
def solution(food):
result = ""
for i in range(1,len(food)):
d = food[i] // 2
result+= str(i) * d
return result + "0" + ''.join(list(result)[::-1]) # 위 코드를 한줄로 간결하게!