프로그래머스
[프로그래머스]귤 고르기
진철
2023. 2. 2. 22:11
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/138476
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드를 작성하기 위한 순서는 다음과 같다.
1. 해당 감귤이 몇 개 있는지 계산한 후, 리스트에 담아준다.
2. 가장 많은 감귤의 갯수를 더해준 후, k값과 비교하여 answer+1을 해준다.
def solution(k, tangerine):
answer = 0
tangerine.sort() #정렬을 해주어 갯수를 구하기 편하게 해준다.
new=[]
cnt=1
for i in range(len(tangerine)):
if i==len(tangerine)-1: #마지막 원소일 때는 따로 분류하여 리스트에 담아준다.
new.append([tangerine[i],cnt])
elif tangerine[i]==tangerine[i+1]:
cnt+=1
else:
new.append([tangerine[i],cnt])
cnt=1
new.sort(key=lambda x:x[1], reverse=True) #람다함수를 사용하여 감귤 갯수를 기준으로 내림차순 정렬을 해준다.
total=0
for i in new:
total+=i[1]
answer+=1
if total>=k: #박스에 k개의 감귤이 모두 담긴 경우이므로 answer를 리턴하여 종료한다.
return answer
return answer
감귤의 갯수에 따라서 새로 리스트를 만드는 것이 이번 문제의 핵심이었다.
리스트에서 두 개의 원소를 비교해야할 때, 반복문에서 마지막(첫) 원소를 항상 따로 신경쎠야할 것 같다.
728x90
반응형