cording test

Lv.2 기능개발

JM Lee 2023. 6. 7. 03:06
728x90

 

코딩테스트 연습 - 기능개발 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

스택과 큐를 이용하는 문제라고 생각했는데, 사용하지 않아도 괜찮은 문제다.

굳이 간단하게 아래 코드처럼 큐를 사용해서 풀어보았는데, 레벨 2는 아닌 거 같은 쉬운 문제였다.

 

이번 코드는 쉽기 때문에 굳이 부연설명 들어가지 않음.

def solution(progresses, speeds):
    answer=[]
    day_=0
    cnt=0
    
    while len(progresses)>0:
        if progresses[0]+day_*speeds[0]>=100:
            progresses.pop(0)
            speeds.pop(0)
            cnt+=1
        else:
            if cnt>0:
                answer.append(cnt)
                cnt=0
            day_+=1
    answer.append(cnt)
    return answer

 

다른 사람은 zip 함수를 이용해서 해결했다. 이게 좀 더 어려운 듯.

def solution(progresses, speeds):
    Q=[]
    for p, s in zip(progresses, speeds):
        if len(Q)==0 or Q[-1][0]<-((p-100)//s):
            Q.append([-((p-100)//s),1])
        else:
            Q[-1][1]+=1
    return [q[1] for q in Q]

'cording test' 카테고리의 다른 글

Lv.2 n-queens  (2) 2023.06.07
Lv.3 이중우선순위큐  (3) 2023.06.07
Lv.1 콜라 문제  (0) 2023.06.04
Lv.2 전화번호 목록(해쉬)  (0) 2023.06.02
Lv.1 폰켓몬(해쉬 사용)  (0) 2023.06.02