본문 바로가기

코딩인터뷰

[코딩인터뷰] 2020 카카오 신입 공채 - 문자열 압축 import sys readline = sys.stdin.readline def solution(s): answer = len(s) for step in range(1, len(s)): compressed = '' prev = s[0:step] count = 1 for j in range(step, len(s), step): next = s[j:j+step] if prev == next: count += 1 else: compressed += str(count) + prev if count > 1 else prev prev = next count = 1 compressed += str(count) + prev if count > 1 else prev answer = min(answer, l..
[코딩인터뷰] 2020 카카오 신입 공채 - 자물쇠와 열쇠 import sys readline = sys.stdin.readline def rotate(key): return list(list(x)[::-1] for x in zip(*key)) def check(N, M, board): for x in range(M-1, M+N-1): for y in range(M-1, M+N-1): if board[x][y] != 1: return False return True def solution(key, lock): M = len(key) N = len(lock) board = [[0] * ((M-1)+N+(M-1)) for _ in range((M-1)+N+(M-1))] for i in range(N): for j in range(N): board[M-1+i][M-1..
[코딩인터뷰] 트라이 자료 구조 Trie data structure 트라이 자료 구조 Trie data structure 문자열 검색에 특화된 트리 자료 구조 트라이 자료 구조는 기본적으로 트리 형태로 구성되는데, 언어의 문자가 제한되어 있다는 특징을 활용한 자료 구조입니다. 트라이 자료 구조는 아래 그림과 같이, 단어를 문자의 형태와 순서를 기준으로 트리를 구성하는 자료구조입니다. 예를 들어, tea 라는 단어를 트라이 자료 구조에 추가하게 되면 root 노드부터 시작해서 t, e, a 순서로 트리에 추가합니다. 이렇게 여러 단어가 추가된 트라이 자료 구조에서 tea 로 시작하는 단어를 찾는다면, 모든 단어를 하나 하나 첫 문자부터 비교하며 검색할 필요없이 트라이 자료 구조의 tea 노드의 자식 노드만 탐색하면 됩니다. 특히 영어의 알파벳은 한글과 달리 문자가 나열되는..
[코딩인터뷰] 문제 8.5
[코딩인터뷰] 문제 8.4
[코딩인터뷰] 문제 8.3
[코딩인터뷰] 문제 8.2
[코딩인터뷰] 문제 8.1