목록카카오 (49)
N
https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr Trie 알고리즘 활용. 물음표가 쿼리의 앞에 존재하는지, 뒤에 존재하는지에 따라 Trie 탐색을 다르게 해야 한다. 2가지의 Trie를 선언하여 단어를 저장하는데, 앞에서 단어를 검색하는 경우와 뒤에서 단어를 검색하는 경우를 저장하기 위함이다. 각 Trie를 frontTrie, backTrie라는 이름으로 선언했다. 우선 words에 있는 단어를 중복제거를 하여 newWords에 저장한다. newWords 배열을 순회하면서 단어를 frontTrie와 backTrie에 저장한다. backTrie에 저장하기 위해서는 단어를 뒤집어야 하기 때문에..
https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 누적합 관련 문제. IMOS 알고리즘을 사용했다. -변수 및 함수 설명- time: 정답을 구한 시간(number) sum: 광고 누적 시간의 최대값 imos배열 : 광고 누적합을 구하기 위한 배열 calculateSecond 함수: 들어온 시,분,초를 초 단위로 변환해 모두 더해 값을 리턴..
https://programmers.co.kr/learn/courses/30/lessons/92344 코딩테스트 연습 - 파괴되지 않은 건물 [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr 새로운 알고리즘을 배웠다. 누적합을 효율적으로 처리할 수 있는 알고리즘이다. IMOS 알고리즘이라고, 아래 블로그에서 설명이 자세하게 잘 나와있어서 참고해서 풀 수 있었다. https://nicotina04...
https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 완전 탐색과 DFS로 풀이. 탐색을 모두 진행한 후 만약 score가 0이라면 라이언이 무조건 진 경우기 때문에 [-1]을 리턴. 그렇지 않으면 answer을 리턴한다. 우선 모든 경우를 탐색해야 하기 때문에 for문으로 10 ~ 0 점을 모두 쏘아봐야 한다. 단, 시작은 무조건 어피치가 쏜 화살보다 1개 많은 화살을 쏘고 DFS 탐색을 진행한다. (화살의 갯수가 같..
https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 변수) 우선 fees 배열에서 [기본 시간, 기본 시간 요금, 단위 시간, 단위 시간 요금]으로 값을 저장했다. inCars는 차가 들어온 시간을 저장하는 Map, outCars는 차가..
https://programmers.co.kr/learn/courses/30/lessons/92335# 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 주어진 n을 k로 나눠 나머지 값을 transformed 배열에 저장한다. 해당 배열을 reverse() 함수로 뒤집은 다음, join("")을 통해 한 문자열로 통합하고, 다시 split("0") 함수로 0을 구분자로 하여 결과를 만든다. 이 결과를 forEach문을 통해 curr이 공백이 아니고, isPr..
https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr const solution = (user_id, banned_id) => { const list = []; const answer = []; const dfs = (index, map) => { if(index === list.length){ if(map.size === list.length){ const string = []; for(const [k, _] o..
https://programmers.co.kr/learn/courses/30/lessons/64063?language=javascript 코딩테스트 연습 - 호텔 방 배정 programmers.co.kr map과 union find를 조합해서 풀이. 우선 room number가 배정되었는지 확인하기 위한 map을 선언. room_number를 for문으로 순회하여 해당 방이 배정되었는지 find 함수를 통해 찾는다. find 함수 전달받은 number를 key로 하여 map을 탐색. 만약 undefined가 나온다면 배정이 안된 상태를 뜻하기 때문에 number를 key, number + 1을 value로 하여 저장한 후, number를 리턴한다. 그렇지 않고 이미 방 배정이 되어 있다면 해당 value..