[プログラマー]宝石を買う
質問リンク
https://programmers.co.kr/learn/courses/30/lessons/67258
問題の説明
に答える
に感銘を与える
初めて
コード#コード# def solution(gems):
answer = [-1, len(gems)]
total = len(set(gems))
count = {gems[0]: 1}
s, e = 0, 0
while True:
# 모두 포함
if len(count) == total:
if answer[1] - answer[0] > e - s:
answer[1] = e + 1
answer[0] = s + 1
if s == len(gems):
break
count[gems[s]] -= 1
if count[gems[s]] == 0:
del count[gems[s]]
s += 1
# 모두 포함 X
else:
if e+1 == len(gems):
break
if gems[e+1] in count:
count[gems[e+1]] += 1
else:
count[gems[e+1]] = 1
e += 1
return answer
Reference
この問題について([プログラマー]宝石を買う), 我々は、より多くの情報をここで見つけました
https://velog.io/@leehj8896/프로그래머스-보석-쇼핑
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def solution(gems):
answer = [-1, len(gems)]
total = len(set(gems))
count = {gems[0]: 1}
s, e = 0, 0
while True:
# 모두 포함
if len(count) == total:
if answer[1] - answer[0] > e - s:
answer[1] = e + 1
answer[0] = s + 1
if s == len(gems):
break
count[gems[s]] -= 1
if count[gems[s]] == 0:
del count[gems[s]]
s += 1
# 모두 포함 X
else:
if e+1 == len(gems):
break
if gems[e+1] in count:
count[gems[e+1]] += 1
else:
count[gems[e+1]] = 1
e += 1
return answer
Reference
この問題について([プログラマー]宝石を買う), 我々は、より多くの情報をここで見つけました https://velog.io/@leehj8896/프로그래머스-보석-쇼핑テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol