본문 바로가기

2018 KAKAO BLIND RECRUITMENT

(9)
[프로그래머스] 파일명 정렬 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA 🔗 문제 링크 [프로그래머스] 파일명 정렬 / 2018 KAKAO BLIND RECRUITMENT(3차) 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 📝 풀이 과정 파일명의 문자열을 파싱하여 head, num을 추출한 뒤 정렬해야했기 때문에 문자열을 패턴으로 파싱할 수 있는 Pattern, Matcher 클래스를 사용하였다.(참고: [Java] Pattern, Matcher Class로 정규식 활용하기) Pattern pattern = Pattern.compile("(?\\D+)(?\\d+)(...
[프로그래머스] n진수 게임 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA 🔗 문제 링크 [프로그래머스] n진수 게임 / 2018 KAKAO BLIND RECRUITMENT(3차) 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 📝 풀이 과정 n진수로 이루어진 숫자를 차례대로 붙인 문자열을 구한 뒤 튜브가 말할 순서마다 뽑아서 붙이는 방식을 사용하였다. 구할 개수 t개에 인원은 총 m명이므로 구해야 할 숫자는 t * m보다 작다는 것을 알 수 있기 때문에 1부터 t*m까지의 숫자를 n진수로 변환한 뒤 문자열에 붙이기위해 String.toString(int n, int..
[프로그래머스] 압축 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA 🔗 문제 링크 [프로그래머스] 압축 / 2018 KAKAO BLIND RECRUITMENT(3차) 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 📝 풀이 과정 문자열을 반복해서 사전에 넣고 찾는 작업을 해야하고, String(문자열)과 int(색인 번호)를 동시에 저장할 수 있는 Map을 사용하기로 했다. 길이가 1인 문자열을 모두 넣어주기 위해 반복문을 돌며 Map.put 해주었고, 입력 문자열을 하나씩 끊어 반복문을 돌며 탐색하였다. map.containsKey를 통해 만약 현재 key가 사전에 없을 때까지 뒤에 덧붙이는 방식..
[프로그래머스] 방금그곡 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA 🔗 문제 링크 [프로그래머스] 방금그곡 / 2018 KAKAO BLIND RECRUITMENT(3차) 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 📝 풀이 과정 주어진 멜로디를 포함하는 악보를 가진 음악을 구하는 문제이다. 문제에서 중요한 점은 C와 C#은 다르기 때문에 #이 붙어있는 음을 바꿔주어야 문자열을 찾게 될 때 오류가 없어지게 된다. 주어진 문자열에서 변환음을 모두 바꾸어 반환해주는 changeStr(str) 함수를 만들어 사용하였다. 음악은 재생된 시간만큼 멜로디가 구성되는데, 만..
[프로그래머스] 캐시 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA 🔗 문제 링크 [프로그래머스] 캐시 / 2018 KAKAO BLIND RECRUITMENT(1차) 코딩테스트 연습 - [1차] 캐시 3 [Jeju, Pangyo, Seoul, NewYork, LA, Jeju, Pangyo, Seoul, NewYork, LA] 50 3 [Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul] 21 2 [Jeju, Pangyo, Seoul, NewYork, LA, SanFrancisco, Seoul, Rome, Paris, Jeju, NewYork, Rome] 60 5 [Jeju, Pangyo, S programmers.co.kr 📝 풀이 과정 가장 최근 참조하지 않은 것을 교체하는 LRU 알고리즘을 구현해보는 문제이..
[프로그래머스] 프렌즈4블록 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA 🔗 문제 링크 [프로그래머스] 프렌즈4블록 / 2018 KAKAO BLIND RECRUITMENT(1차) 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 📝 풀이 과정 입력은 String 배열로 들어왔지만 코드의 편의성을 위해 char형의 이중 배열로 변경하였다 블록을 좌상단부터 시작해 탐색하며 좌우, 좌하, 우하의 칸이 모두 자신의 칸과 동일하면 제거하기 위한 nextBlock에 .으로 값을 변경하여 찍어주었다. 이후, 모두 제거가 된 블럭들로 생긴 빈칸을 채우기 위해 반복문을 통해 탐색..
[프로그래머스] 뉴스 클러스터링 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA 🔗 문제 링크 [프로그래머스] 뉴스 클러스터링 / 2018 KAKAO BLIND RECRUITMENT(1차) 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 📝 풀이 과정 집합을 만들어 교집합과 합집합을 조사해야 하는데, 같은 원소가 여러번 등장할 수 있고 자주 찾아 반환해주어야 하기 때문에 HashMap 자료구조를 사용하기로 했다. 집합에 대소문자 구분은 없으므로 String.toLowerCase()를 사용해 모든 문자열을 소문자로 변경해주었다. 첫번째 문자열을 모두 끊어 Map에 넣어..
[프로그래머스] 다트 게임 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA 🔗 문제 링크 [프로그래머스] 다트 게임 / 2018 KAKAO BLIND RECRUITMENT(1차) 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 📝 풀이 과정 다트 게임의 결과가 일정한 패턴을 가진 String로 들어오게 된다. String을 하나씩 끊어가며 처리하는 방법도 있겠지만, 숫자의 경우 10이 들어오게 되면 처리가 불편해지기 때문에 Pattern과 Matcher class를 사용하기로 했다. (참고 : [Java] Pattern, Matcher Class로 정규식 활용하기) Pattern pattern = Pattern.compile("([0-9]+)([SDT])([*#]?)"); Matcher matcher = pattern.matcher(dartResult);..