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/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..
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':..
programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr def solution(board, moves): answer = 0 basket = [] cnt = -1 // basket의 길이를 저장하는 변수 for move in moves: for i in range(len(board)): if board[i][move-1] != 0: basket.append(board[i][move-1]) board[i][move-1] = 0 cnt += 1 if cnt >..
programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr import re def solution(new_id): # 1단계 answer = new_id.lower() # 2단계 answer = re.sub('[^0-9a-z\.\-\_]', '', answer) # 3단계 answer = re.sub('[.]+', '.', answer) # 4단계 if answer.startswith('.'): answer = answer[..