소스 코드

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. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.