https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 풀이 1. 지워야하는 블록 검사 - check() 함수로 블록이 2x2 형태로 붙어있는지 확인한다. 2. 블록 지우기 - popList에 지워질 칸의 행과 열을 저장한다. -> set을 사용하기 위해 튜플 형태로 저장 - set을 사용해 겹치는 부분을 한번만 처리한다. - 지운 칸은 '-'로 표시한다. 3. 블록 내리기 - popList를..
https://programmers.co.kr/learn/courses/30/lessons/12952 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr 풀이 1. queen 배열 - ex) queen[1] = 2 -> 1행 2열에 퀸 배치 2. check 함수 - 퀸이 놓일 수 있는지 행, 열, 대각선 확인 - abs(x-i) == abs(queen[x] - queen[i]) : 대각선 방향 확인 - ex) [2, 3]의 대각선 방향 = [1, 2], [0, 1], [1, 4] / [2, 2]의 ..
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/77487 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr SELECT ID, NAME, HOST_ID FROM PLACES WHERE HOST_ID IN ( SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID) >= 2 )
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/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr def grade(score): if score >= 90: return 'A' elif score >= 80 and score = 70 and score = 50 and score < 70: ret..