본문 바로가기

Problem Solving/Programmers - Python

[Python | 파이썬] 보석 쇼핑 (프로그래머스 2020 카카오 인턴십)

[Python | 파이썬] 보석 쇼핑 (프로그래머스 2020 카카오 인턴십)

 

 

0. 보석의 종류별로 각 종류의 보석이 몇개인지 count하는 dictionary 생성

1. left, right인덱스는 처음에 모두 0에서 시작하고, 반복문은 둘다 마지막 인덱스일때까지만 실행

2. 보석의 종류별로 최소 1개 이상 모두 포함해야하므로 dictionary의 길이가 보석의 종류와 같은지 확인해서 같으면 answer에 현재 (인덱스의 길이(right에서 left까지의 길이), left와 right 인덱스) 를 추가해주고, left인덱스를 증가

그리고 left인덱스에 해당하는 dictionary의 보석의 개수를 감소시켜줘야 한다.

3. 만약 종류보다 작다면 right인덱스를 증가

주의할 점은 right인덱스를 증가시켰을때 전체 보석의 길이와 같아진다면 종료해줘야한다.

5. 그리고 보석의 개수가 0이 된다면 dictionary에서 삭제시켜준다. => dictionary의 길이로 보석의 종류가 n개인지를 판단하기 때문에 반드시 삭제시켜줘야함

6. 짧은 구간이 여러 개라면 시작 진열대 번호가 가장 작은 구간을 return하기 때문에 튜플로 정렬해준다.

programmers.co.kr/learn/courses/30/lessons/67258

 

프로그래머스

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

programmers.co.kr