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/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/72412 0: left, right = 0, len(scores) # lower bound 이용해서 인덱스 찾기 while left = point: right = mid else: left = mid + 1 answer.append(len(scores) - left) else: answer.append(0) return answer
programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr def solution(numbers, hand): answer = '' keypad = [[1, 4, 7, '*'], [2, 5, 8, 0], [3, 6, 9, '#']] pl = [0, 3] pr = [2, 3] for num in numbers: if num i..
programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr def solution(N, stages): answer = [] s = {} stages = sorted(stages) for n in range(1, N+1): s[n] = 0 user = len(stages) prev = 1 for i in range(1, N+1): if i >= prev and user != 0: cnt = stages.count(i) s[i] = c..
programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr def solution(record): answer = [] nickname = {} for r in record: row = r.split(' ') if row[0] == 'Enter' or row[0] == 'Change': nickname[row[1]] = row[2] for r in record: row = r.split(' ') if row[0] == 'Enter':..