오랑우탄의 반란
프로그래머스 | 푸드 파이트 대회 (Python3) 본문
반응형
오늘도 오랑이는 문제를 풉니다.
푸드 파이트 대회
풀이 과정
우선 1~len(food)의 숫자 i 에 대해서 food[i] 번 음식이 i 번 반복되도록 하는 패턴을 짜줍니다.
food[i]을 둘로 나눈 몫만큼 i 를 문자열로 변환해서 곱해주면 됩니다.
str(i)*(food[i]//2)
이후 반복문에 넣어보면 아래와 같이 우리가 원하는 패턴의 반이 리스트 형식으로 출력됩니다.
이때 이걸 뒤집은 형태의 리스트와 합쳐주면 되는데, 중간에 0을 넣고 싶은 것이지요.
for i in range(1,len(food)):
temp.append(str(i)*(food[i]//2))
temp += temp[::-1]
temp.insert(len(temp)//2,'0')
이때 해당 부분이 for 반복문 안에 들어가지 않도록 주의합니다.
마지막으로 리스트를 조인해줘서 answer 로 출력되게 하면 됩니다.
최종 코드
def solution(food):
answer = ''
temp = []
for i in range(1,len(food)):
temp.append(str(i)*(food[i]//2))
temp += temp[::-1]
temp.insert(len(temp)//2,'0')
answer = "".join(temp)
return answer
리스트 temp 대신 문자열 temp 를 사용하면 풀이가 조금 더 간단해집니다.
answer 에 반복된 숫자들의 문자열을 적재해준 후, temp 는 이 문자열 끝에 '0' 을 붙인 값으로 저장해줍니다.
이후 return에서 temp와 answer 의 역순을 합쳐서 출력되도록 합니다.
def solution(food):
answer = ''
temp = ''
for i in range(1,len(food)):
answer += str(i)*(food[i]//2)
temp = answer + '0'
return temp+answer[::-1]
오랑우탄이 영어를 하고 오랑이가 코드마스터가 되는 그날까지~
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'PYTHON > 프로그래머스' 카테고리의 다른 글
프로그래머스 | 명예의 전당 (1) (Python3) (1) | 2024.07.16 |
---|---|
프로그래머스 | 콜라 문제 (Python3) (2) | 2024.07.16 |
프로그래머스 | 가장 가까운 같은 글자 (Python3) (0) | 2024.07.15 |
프로그래머스 | 문자열 내 마음대로 정렬하기 (Python3) SORT 함수 (0) | 2024.07.12 |
프로그래머스 | 두 개 뽑아서 더하기 (Python3) SET함수 (0) | 2024.07.12 |