Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 티스토리 open api
- 티스토리
- Spring Boot
- trie
- pycon
- 알고리즘
- 불량 사용자
- 징검다리 건너기
- CleanCode
- bulk update
- Open API
- 프로그래머스
- 트라이
- 카카오 인턴
- 크레인 인형뽑기 게임
- jdbc
- 튜플
- Tistory
- 호텔 방 배정
- 가사 검색
- Python
- 트라이 #trie #알고리즘
- 보행자 천국
Archives
- Today
- Total
택시짱의 개발 노트
[카카오 인턴] 보석 쇼핑 with python 본문
링크
www.welcomekakao.com/learn/courses/30/lessons/67258?language=python3
import collections
import heapq
import functools
import itertools
import re
import sys
import math
from typing import *
def solution(gems):
left: int = 0
gems_cnt = len(set(gems))
deque = collections.deque()
answer = list()
is_collect = collections.defaultdict(int)
for right, gem in enumerate(gems):
deque.append(gem)
is_collect[gem] += 1
while (len(is_collect) == gems_cnt):
answer.append([left + 1, right + 1])
if is_collect[gems[left]] - 1 <= 0:
break
is_collect[gems[left]] -= 1
if is_collect[gems[left]] == 0:
is_collect.pop(gems[left])
left += 1
deque.popleft()
answer.sort(key=lambda x: (x[1] - x[0], x[0]))
return answer[0]
if __name__ == "__main__":
gems = sys.stdin.readline().rstrip().split()
print(solution(gems))
반응형
'알고리즘' 카테고리의 다른 글
2019 안랩 코테 통과 (0) | 2021.01.12 |
---|---|
프로그래머스 - 다음 큰 숫자 (0) | 2020.10.04 |
[카카오 인턴] 경주로 건설 with python (0) | 2020.09.11 |
[프로그래머스] 위장 (0) | 2020.05.22 |
[프로그래머스] 베스트앨범 (python) (0) | 2020.05.21 |
Comments