https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 풀이 모든 속성 인덱스의 조합을 구하고 그 조합에 해당하는 속성의 값들을 모아 유일성을 확인한다. 그 조합이 유일성을 만족하는 키들 중에 부분집합으로 포함되는지 체크해서 최소성을 확인한다. import itertools def solutio..
https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 풀이과정 1. 음악이 시작한 시각, 끝난 시각, 음악 제목, 악보 정보로 분리하기 -> ',' 구분자로 분리 2. 재생 시간 구하기 3. C#, D# 등 코드 소문자 알파벳으로 바꾸기 -> 함수로 작성 (replace_code()) 3-1. 악보 정보 바꾸기 -> replace_code(악보 정보) 3-2. 네오가 기억한 멜로디(m) 바꾸기 -> r..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr def solution(s): answer = 1001 if len(s) == 1: return 1 for size in range(1, len(s)//2 + 1): compression = '' piece = s[:size] cnt = 1 for i in range(size, len(s), size): if piece == s[i:i+size]: cnt..
https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr from collections import deque def solution(n, edge): answer = 0 graph = {i:[] for i in range(1, n+1)} for i, j in edge: graph[i].append(j) graph[j].append(i) visited = [0] * (n+1) visited[1] = 1 queue = deque([[1, 0]]) while(queue): node, dept..
https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr def solution(rows, columns, queries): answer = [] s = [] i = 1 for _ in range(rows): tmp = [] for _ in range(columns): tmp.append(i) i += 1 s.append(tmp) for query in queries: num = 10001 x1, y..
https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr def solution(n, times): answer = 0 left = 1 right = max(times) * n while left = n: right = mid else: left = mid + 1..
programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr def solution(s): answer = [0, 0] while(s != '1'): answer[0] += 1 n = '' for num in s: if num == '1': n += '1' else: answer[1] += 1 s = bin(len(n))[2:] return answer