소스 코드
def solution(cacheSize, cities):
answer = 0
answer_lst = []
# 0인 경우(예외 케이스)
if cacheSize == 0:
answer = len(cities) * 5
else:
# cities를 돌면서 answer_lst 안에 값이 없으면 추가
# 존재하면 해당 값을 제거한 후, 마지막 위치에 값 추가
for q in cities:
if q not in answer_lst:
if len(answer_lst) < cacheSize:
answer_lst.append(q)
answer += 5
else:
answer_lst.pop(0)
answer_lst.append(q)
answer += 5
else:
answer_lst.pop(answer_lst.index(q))
answer_lst.append(q)
answer += 1
return answer
해결 방법
1. 도시의 이름은 대,소문자 구분이 없다
=> 다 바꿔줘야 한다
2. cache hit은 answer_lst 안에 똑같은 값이 있는 경우, cache miss는 그 외의 모든 경우
3. 캐시 크기는 answer_lst의 최대값
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제풀이.프로그래머스' 카테고리의 다른 글
[프로그래머스 코딩] 복서 정렬하기 - PYTHON (0) | 2021.09.06 |
---|---|
[프로그래머스 코딩] 실패율 - PYTHON (0) | 2021.09.05 |
[프로그래머스 코딩] 프린터 - PYTHON (0) | 2021.09.04 |
[프로그래머스 코딩] 조이스틱 - PYTHON (0) | 2021.09.03 |
[프로그래머스 코딩] 전화번호 목록 - PYTHON (0) | 2021.09.02 |