본문 바로가기

전체 글

(201)
[2019 KAKAO BLIND RECRUITMENT] 매칭 점수(C++) https://www.welcomekakao.com/learn/courses/30/lessons/42893#qna 코딩테스트 연습 - 매칭 점수 | 프로그래머스 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀에 편입될 수 있었고, 대망의 첫 프로젝트를 맡게 되었다. 그 프로젝트는 검색어에 가장 잘 맞는 웹페이지를 보여주기 위해 아래와 같은 규칙으로 검색어에 대한 웹페이지의 매칭점수를 계산 하는 것이었다. 한 웹페이지에 대해서 기본점수, 외부 링크 수, 링크점수, 그리고 매칭점수를 www.welcomekakao.com 이번 문제는, 간단한 구현 문제이다. 문제의 조건을 읽고..
[2019 KAKAO BLIND RECRUITMENT] 무지의 먹방 라이브(시행착오 포함) https://www.welcomekakao.com/learn/courses/30/lessons/42891 코딩테스트 연습 - 무지의 먹방 라이브 | 프로그래머스 www.welcomekakao.com 가장 까다로웠던 문제이다. 정확성은 쉽게 통과할 수 있지만, 효율성에 대해서는 통과하기가 어렵다. 또한, 정답과 유사한 아이디어를 생각한다고 해도, 자료구조를 쓰는 방식에 따라서 효율성 테스트를 통과할 수 있을지 없을지가 결정된다. 이 문제의 정확성 테스트를 통과하기 위해서는, 쉽게 매초마다 Action을 취해주면서 최종적으로 방송 중지 시간 이후에 먹어야 할 음식의 순서를 결정해주면 된다. 이 부분은 간단하게 구현할 수 있다. 하지만, 중요한 것은 효율성 테스트를 통과하기 위해서는 매초마다 Action을 ..
[2019 KAKAO BLIND RECRUITMENT] 후보키 ## 접근 1. 비트마스크를 사용해서, 모든 조합을 탐색하기 시작한다. 조합마다 HashSet 자료구조를 이용해서 유일성을 만족시키는지 검사한다. 2. 유일성을 만족한다면 최소성도 만족하는지 검사해야 하는데, 기존의 정답들을 담아두는 자료구조와 비교하여 최소성 만족 유무 확인한다. ## 해설코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 import java.util.*; import java.io.*; import java..
[2020 KAKAO BLIND RECRUITMENT] 블록 이동하기(Java, 간단한 코드, DFS? or BFS?) ## 접근 1. DFS와 BFS 중 선택, DFS는 구현이 간단하지만 최소 시간을 구할 때는 적합하지 않다. 따라서, Depth(Time)을 확인할 수 있는 BFS를 선택. 2. 방문 표시를 통해서, 재탐색이 이루어지지 않도록 한다.(시간초과방지), 로봇 상태를 구분해서 방문 표시를 해야 하므로 3차원 배열을 사용해야 한다. 2차원 배열 시에, 수직과 수평의 구분이 없어지므로 주의한다. 3. 회전을 한다는 것을, 로봇의 아래, 위, 오른쪽, 왼쪽의 2칸이 모두 비어있어야 함을 의미한다. 코드에서 구현을 확인하도록 한다. ## 유의사항 1. 변수를 사용할 때, x1, y1, x2, y2는 지양한다. 문자에 숫자를 덧붙여 쓰다보니, 실수를 할 수 있다. ## 해설코드 1 2 3 4 5 6 7 8 9 10 1..
[2020 KAKAO BLIND RECRUITMENT] 외벽 점검 (문제접근법, 해설 이해하기) ## 접근 1. 시작점을 잡고, 순열을 통해서 모든 외벽의 취약 지점들을 커버할 수 있는지 확인해야 한다. 함수는 필요한 인원수를 반환하는 것으로 정의한다. 2. 외벽은 원의 형태를 이루고 있으므로, 이동할 수 있는 거리는 시계 방향만 고려하면 된다.(반시계로 된다면 시계로도 가능) 이동할 수 있는 거리가, 외벽의 길이를 넘어가면 검사해야 하는 외벽들의 위치에 외벽의 길이만큼 더해줘야 한다. ## 해설코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 clas..
Trie(트라이) 자료구조 정의, 예제 코드 2020 신입 개발자 카카오 블라인드 시험을 치다가, 문자열 처리에 대한 자료구조를 알게 되었다. Trie 자료구조에 대한 다음과 같은 모습으로 생겼다. 위에 보면, APPLE, LABLE, CABLE이라는 단어를 넣은 것이다. 왜 굳이, Trie 자료구조를 사용해야 하는지를 생각해보자. 특정 문자열을 벡터에서 순차적으로 탐색하면, 최대 문자열의 갯수만큼 걸리게 된다. 하지만 Trie 자료구조를 사용하면, 문자열의 길이만큼의 탐색 시간이 걸린다. 즉, 많은 문자열속에서 특정한 문자열을 찾기 위해서는 Trie만한 자료구조가 없다. Trie 자료 구조를 사용하지 않으면, 카카오 블라인드 2020 기출문제 효율성을 통과할 수 없게끔 설계되어 있다. Trie 자료 구조를 몰랐을 때 사용했던 방법은, 문자열을 일..
면접 준비하는법, 면접 합격하는 법, 최종 면접 합격 후기 보호되어 있는 글입니다.
[삼성 코딩 테스트] 코딩테스트 잘보는법, 자주 실수하는 유형(C++) 이번 글에서는, 코딩 테스트에 대비하여 자주 실수하는 유형에 대해서 소개해드리겠습니다. 제 경험을 기준으로 설명드리는 것이라서, 추가하고 싶은 내용이 있으면 댓글 달아주시면 감사하겠습니다. 시험 전에 읽으시면 많이 도움이 될 '자주 실수하는 유형들'입니다. 인덱스 에러 for문 내부에서 자료 구조를 이용한 탐색을 진행할 때 발생할 수 있다. 채점 시 런타임 에러라고 발생한다. for문을 사용할 때 내부에서 사용하고 있는 인덱스와 for문에 선언한 인덱스가 같은지 꼭 파악한다. for문을 이중 중첩이상으로 사용하다보면, 실수할 수 있는 부분이다. 헤더 파일 에러 시험장에서 긴장을 하게 되면서, #include 해야 할 파일들을 적지 않아서 발생할 수 있는 문제이다. 코드를 아무리 봐도 답이 없어 보일 때,..