보물창고 블로그

2018 KAKAO BLINDRECRUITMENT 1차 캐시 본문

알고리즘 풀이/프로그래머스

2018 KAKAO BLINDRECRUITMENT 1차 캐시

홋 메 2020. 3. 26. 16:21
728x90

문제 링크: https://programmers.co.kr/learn/courses/30/lessons/17680

 

프로그래머스

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

programmers.co.kr

캐시의 LRU 알고리즘을 구현하는 문제였다.  해결한 코드는 아래와 같다. 캐시의 크기가 0일 때만 예외 처리하였다.

def solution(cacheSize, cities):
    for i in range(len(cities)):
        cities[i] = cities[i].lower()
    if cacheSize == 0:
        return len(cities) * 5
    answer = 0
    cache = [''] * cacheSize
    for i in range(len(cities)):
        if cities[i] not in cache:
            answer += 5
            del cache[0]
            cache.append(cities[i])
        else:
            answer += 1
            cache.remove(cities[i])
            cache.append(cities[i])
    return answer
Comments