-
프로그래머스[Python] - 쿼드 압축 후 개수 세기, [1차]캐시프로그래머스문제정리 & Python잡다한것 2021. 7. 21. 15:30728x90반응형
쿼드압축 후 개수 세기
문제 url : https://programmers.co.kr/learn/courses/30/lessons/68936
문제 내용 : 0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr가 있을 때, 쿼드 트리 같은 압축 방식으로 이 배열을 압축하려고 한다.조건
- 당신이 압축하고자 하는 특정 영역을 S라고 정의합니다.
- 만약 S 내부에 있는 모든 수가 같은 값이라면, S를 해당 수 하나로 압축시킵니다.
- 그렇지 않다면, S를 정확히 4개의 균일한 정사각형 영역(입출력 예를 참고해주시기 바랍니다.)으로 쪼갠 뒤, 각 정사각형 영역에 대해 같은 방식의 압축을 시도합니다.
알고리즘 : 재귀(Recursive), 리스트 슬라이싱
알게된 점 :
- 이중 리스트 슬라이싱 간편성(Python의 특징) : 우선 아래 이중 for문은 C++ 로 알고리즘을 공부할 때부터 쓰던 습관이다. 이중 배열(리스트)를 탐색할때, 이중 for문을 썼었는데, 너무 코드가 길어지는 점 때문에 지저분하다고 느꼈다. 그래서 Python에서 리스트 슬라이싱으로 한줄이면 이를 처리할 수 있었다.
- return할때 변수에 데이터 저장 여부 : answer를 다른 함수에서 argument로 넘겨줬다. 나는 기본적으로 이렇게 넘겨진 파라미터는 그 함수에서 life가 끝나는 것으로 알고 있어서 이를 어떻게 저장해서 return할지 고민했다. Python에서는 그냥 이 변수가 모든 것을 기억하고 있었다. 그래서 그냥 재귀적으로 처리할 때도 쉽게 구현할 수 있었다.
캐시 [2018 KAKAO BLIND RECRUITMENT]
문제 url : https://programmers.co.kr/learn/courses/30/lessons/17680
문제 내용 : 캐시 교체 알고리즘 LRU를 구현한다.
cache hit
일 경우 실행시간은1
이다.cache miss
일 경우 실행시간은5
이다.
알고리즘 : Queue(LRU 구현)
반응형'프로그래머스문제정리 & Python잡다한것' 카테고리의 다른 글
프로그래머스[Python] - 방금그곡, 가장 큰 정사각형 찾기 (0) 2021.07.25 프로그래머스[Python] - 방문 길이, 올바른 괄호, 피보나치 수 (0) 2021.07.21 프로그래머스[Python] - 이진 변환 반복하기, 점프와 순간 이동, 스킬트리 (0) 2021.07.19 프로그래머스[Python] - 프렌즈 4블록 [2018 KAKAO BLIND RECRUITMENT] (0) 2021.07.18 프로그래머스[Python] - 구명 보트, 영어 끝말잇기, 2개 이하로 다른 비트 (0) 2021.07.17