본문 바로가기
728x90
반응형

문제풀이12

[Programmers] 징검다리 건너기 문제 2019 카카오 개발자 겨울 인턴십 > 징검다리 건너기 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 아이디어 이번 문제는 우선순위 큐와 일반 큐의 조합으로 풀어봤습니다. 제가 문제를 읽고 생각한 풀이 방법은 "디딤돌을 k개만큼 순서대로 묶었을 때 묶어진 디딤돌들에서 나오는 최댓값들 중 최솟값을 구하기"였습니다. 왜냐하면 k개 만큼 인접한 디딤돌들은 서로 커버가 가능하기 때문입니다. 그렇기 때문에 인접한 디딤돌들을 k개만큼 묶으면 묶인 디딤돌들은 내부에 존재하는 디딤돌의 최댓값만큼 버틸 수 있고 결국에는 묶인 디딤돌들의 최댓값 중 최솟값을 구하면 최대 건널 수 있는 카카오 친구들의 숫자를 구할 수 있게 됩니다. 1번.. 2021. 4. 23.
[Programmers] 후보키 문제 2019 KAKAO BLIND RECRUITMENT > 후보키 코딩테스트 연습 - 후보키 [["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 아이디어 이번 문제의 아이디어는 부분집합을 이용한 완전 탐색이라고 생각합니다. 문제에서 요구하는 후보 키가 되기 위해서는 유일성과 최소성을 모두 만족해야 됩니다. 그리고 컬럼값의 최대 길이는 8까지이기 때문에 컬럼들에 대한 모든 부분집합을 구해도 시간 초과 등의 에러를 마주.. 2021. 3. 27.
[Programmers] 오픈채팅방 문제 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 아이디어 이번 문제의 아이디어는 아이디에 맞는 닉네임 매핑 방법이라고 생각합니다. 그리고 닉네임을 매핑하는 방법은 map을 사용하면 됩니다. key는 아이디, value는 닉네임으로 한 map을 생성하여 채팅방에 사람들이 들어올 때마다 key-value쌍을 지어 순서대로 모두 넣어주게 되면 결과적으로 마지막에 저장되어 있는 값이 아이디에 해당하는 닉네임이 될 것입니다. 들어오거나 나갈 때 발.. 2021. 3. 25.
[Programmers] 블록 이동하기 문제 2020 KAKAO BLIND RECRUITMENT > 블록 이동하기 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 아이디어 이번 문제는 평범한 BFS로 길 찾는 문제들의 심화 버전이라고 생각합니다. 로봇이 차지하는 공간이 2칸이어도 사방탐색을 하는 데는 어려움이 없었지만 회전하는 경우를 구할 때 말썽을 많이 부렸습니다. 초기 코드가 구현되었을 때는 회전하는 부분이 복잡하고 길었지만 구현하고 나서 생각을 다시 정리해보니 회전하는 경우를 판단할 때 매우 간단한 코드로 변경할 수 있었습니다. 생각한 방법에 대해 간단하게 설명드리겠습니다.. 2021. 3. 20.
[Programmers] 자물쇠와 열쇠 문제 2020 KAKAO BLIND RECRUITMENT > 자물쇠와 열쇠 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 아이디어 이번 문제는 처음 접했을 땐 풀지 못하고 시간이 흘러 다시 접했을 때 풀게 된 문제였습니다. 풀이 방법은 단순히 회전을 하며 자물쇠를 열 수 있는 모든 경우를 찾는 완전탐색을 하면 되었습니다. 자물쇠는 고정 시키고 열쇠를 좌측 상단부터 우측 하단까지 옮기며 자물쇠를 열 수 있는지를 확인해주면 됩니다. 마치 2차원 배열을 탐색하는 것처럼요. 그림으로 나타내면 이런 모습이 나오겠습니다. 구현 코드 (Java) class Soluti.. 2021. 3. 19.
[Programmers] 괄호 변환 문제 2020 KAKAO BLIND RECRUITMENT > 괄호 변환 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 아이디어 이 문제의 아이디어는 문제에서 제공해주고 있습니다. 문제에서 설명하는 상황에 맞게 코드를 구현하기만 하면 끝인 문제입니다. 굳이 하나를 선택해보자면 재귀 함수를 이용해야 된다고 말할 수 있을 것 같습니다. 구현 코드 (JavaScript) const solve = (val) => { if(val.length === 0) { return ''; } let count = 0; // '('.. 2021. 3. 18.
[Programmers] 문자열 압축 문제 2020 KAKAO BLIND RECRUITMENT > 문자열 압축 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 아이디어 이 문제는 문제를 푼 사람이 많은 것처럼 큰 아이디어를 요구하지 않았습니다. 문자열을 모두 동일한 길이로 잘라낸 뒤 잘라진 문자열 중 동일한 문자열이 있다면 개수를 세어 그에 걸맞은 새로운 문자열을 만들어주기만 하면 됩니다. 다음과 같은 절차를 통해 코드를 작성하면 됩니다. 1. 자를 문자열 길이 탐색 (1~s문자열의 길이/2) 2. 길이만큼 잘라낸 문자열을 모두 탐색하여 .. 2021. 3. 17.
[Programmers] 보행자 천국 문제 2017 카카오코드 예선 > 보행자 천국 코딩테스트 연습 - 보행자 천국 3 3 [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 6 3 6 [[0, 2, 0, 0, 0, 2], [0, 0, 2, 0, 1, 0], [1, 0, 0, 2, 2, 0]] 2 programmers.co.kr 아이디어 이번 문제는 DFS/BFS를 이용하여 풀어야 되는 것처럼 보이지만 DP를 이용하여 풀어야만 하는 문제입니다. DP를 활용하는 방법은 간단합니다. city_map배열을 순회하면서 현재 위치에서 다음 위치(오른쪽, 아래)를 이동하는 경우를 생각하거나 또는 이전 위치(왼쪽, 위)에서 현재 위치로 오게 하는 경우를 생각하면 됩니다. 저 같은 경우는 현재 위치에서 다음 위치로 이동하는 경우를 활용하여 풀었습.. 2021. 3. 14.
[Programmers] 순위 검색 문제 2021 KAKAO BLIND RECRUITMENT > 순위 검색 2021. 3. 11.
[Programmers] 합승 택시 요금 문제 2021 KAKAO BLIND RECRUITMENT > 합승 택시 요금 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 아이디어 이 문제는 문제를 보자마자 플로이드-워셜을 이용해야겠다는 생각이 났던 문제입니다. 왜냐하면 무지와 .. 2021. 3. 10.
[Programmers] 카드 짝 맞추기 문제 2021 KAKAO BLIND RECRUITMENT > 카드 짝 맞추기 코딩테스트 연습 - 카드 짝 맞추기 [[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16 programmers.co.kr 아이디어 해당 문제를 처음 접했을 때 어떻게 풀지 막막했었습니다. 여러 생각을 하던 도중 아이디어가 생각나지 않아 질문하기 메뉴를 통해 아이디어를 찾다가 순열을 이용하신 분이 있는 것을 보고 어떻게 풀어내야 할지 아이디어가 생각난 문제였습니다. 코드는 짧지 않지만 풀이법은 생각보다 간단했습니다. 탐색할 카드들을 순열을 통해 순서를 정하고 키 조작 횟수를 최소화하며 순서대로 카드를 찾아 가기.. 2021. 3. 7.
[Programmers] 메뉴 리뉴얼 문제 [프로그래머스] 2021 KAKAO BLIND RECRUITMENT > 메뉴 리뉴얼 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 아이디어 이 문제는 손님들이 주문한 단품 메뉴들의 조합을 어떻게 세부적으로 나눠서 몇 번 주문했는지를 확인하는지가 핵심이라고 생각합니다. 가장 먼저 생각난 방법은 조합입니다. orders 배열의 각 원소의 길이가 n이라고 했을 때 1부터 n개까지 택하는 모든 조합을 구하는 것을 생각했습니다. 조합을 이용해도 문제없이 문제를 풀 수 있다고 생각했지만 1부터 n개까지 모든 조합에.. 2021. 3. 6.
728x90
반응형