본문 바로가기

Study/코딩테스트29

[ 프로그래머스 / 2019 KAKAO BLIND RECRUITMENT / Python] 오픈채팅방 문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열 record가 매개변수로 주어질 때, 모든 기록이 처리된 후, 최종적으로 방을 개설한 사람이 보게 되는 메시지를 문자열 배열 형태로 return 하도록 solution 함수를 완성하라. 풀이 코드 def solution(record): answer = [] dic = {} states =.. 2022. 3. 24.
[ 프로그래머스 / 2021 KAKAO BLIND RECRUITMENT / Python ] 메뉴 리뉴얼 문제 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 각 손님들이 주문한 단품메뉴들이 문자열 형식으로 담긴 배열 orders, "스카피"가 추가하고 싶어하는 코스요리를 구성하는 단품메뉴들의 갯수가 담긴 배열 course가 매개변수로 주어질 때, "스카피"가 새로 추가하게 될 코스요리의 메뉴 구성을 문자열 형태로 배열에 담아 return 하도록 solution 함수를 완성해 주세요. [제한사항] orders 배열.. 2022. 3. 20.
[ 프로그래머스 / 2021 KAKAO BLIND RECRUITMENT / Python ] 신규 아이디 추천 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/72410?language=python3 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제 풀이 from collections import deque def first_second(new_id_lst): temp = [] symbol = ['.','_','-'] i = 0 while new_id_lst: word = new_id_lst.popleft() if word.isalpha(): temp.a.. 2022. 3. 7.
[ 프로그래머스 / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) / Python ] 행렬 테두리 회전하기 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/77485 풀이 코드 def find_min_num(graph, top, left, bottom, right): top_left = graph[top][left] min_num = top_left for y in range(top, bottom): graph[y][left] = graph[y+1][left] min_num = min(min_num, graph[y][left]) for x in range(left, right): graph[bottom][x] = graph[bottom][x+1] min_num = min(min_num, graph[bottom][x]) for y in range(bottom.. 2022. 2. 21.
[ 프로그래머스 / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) / Python ] 로또의 최고 순위와 최저 순위 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/77484?language=python3 풀이 코드 def prize_winning(n): lst = [6,6,5,4,3,2,1] return lst[n] def solution(lottos, win_nums): answer = [] #최고순위 correct = 0 for lotto in lottos: if lotto in win_nums: correct += 1 elif lotto == 0: correct += 1 answer.append(prize_winning(correct)) #최저순위 correct = 0 for lotto in lottos: if lotto in win_nums: correct.. 2022. 2. 21.
[ 프로그래머스 / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) / Python ] 다단계 칫솔 판매 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/77486 제한사항 enroll의 길이는 1 이상 10,000 이하입니다. enroll에 민호의 이름은 없습니다. 따라서 enroll의 길이는 민호를 제외한 조직 구성원의 총 수입니다. referral의 길이는 enroll의 길이와 같습니다. referral 내에서 i 번째에 있는 이름은 배열 enroll 내에서 i 번째에 있는 판매원을 조직에 참여시킨 사람의 이름입니다. 어느 누구의 추천도 없이 조직에 참여한 사람에 대해서는 referral 배열 내에 추천인의 이름이 기입되지 않고 “-“ 가 기입됩니다. 위 예제에서는 john 과 mary 가 이러한 예에 해당합니다. enroll 에 등장하는 이름은 조.. 2022. 2. 21.
[프로그래머스 / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) / SQL ] 헤비 유저가 소유한 장소 문제 https://programmers.co.kr/learn/courses/30/lessons/77487#_=_ 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요. 풀이 코드 SELECT * FROM PLACES WHERE HOST_ID IN (SELECT HOST_ID FROM PLACES GROUP BY .. 2022. 2. 17.
[프로그래머스 / 2022 KAKAO BLIND RECRUITMENT / Python ] 파괴되지 않은 건물 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] N x M 크기의 행렬 모양의 게임 맵이 있습니다. 이 맵에는 내구도를 가진 건물이 각 칸마다 하나씩 있습니다. 적은 이 건물들을 공격하여 파괴하려고 합니다. 건물은 적의 공격을 받으면 내구도가 감소하고 내구도가 0이하가 되면 파괴됩니다. 반대로, 아군은 회복 스킬을 사용하여 건물들의 내구도를 높이려고 합니다. 적의 공격과 아군의 회복 스킬은 항상 직사각형 모양입니다. 예를 들어, 아래 사진은 크기가 4 x 5인 맵에 내구도가 5인 건물들이 있는 상태입니다. 첫 번째로 적이 맵의 (0,0)부터 (3,4)까지 공격하여 4만큼 건물의 내구도를 낮추면 아래와 같은 상태가 됩니다. 두 번째로 적이 맵의 (2,0)부터 (2,3)까지 공.. 2022. 2. 14.
[프로그래머스 / 2022 KAKAO BLIND RECRUITMENT / Python ] 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다. 어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니다. 점수를 계산합니다. 과녁판은 아래 사진처럼 생겼으며 가장 작은 원의 과녁 점수는 10점이고 가장 큰 원의 바깥쪽은 과녁 점수가 0점입니다. 만약, k(k는 1~10사이의 자연수)점을 어피치가 a발을 맞혔고 라이언이 b발을 맞혔을 경우 더 많은 화살을 k점에 맞힌 선수가 k 점을 .. 2022. 2. 14.