목록프로그래머스 알고리즘/KAKAO (56)
N
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/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 문자열과 map을 활용. 변수 설명 answer : 정답 배열 length : id_list의 길이 count : 유저가 신고를 받은 횟수 배열 reportedUser : 유저의 중복 신고 횟수를 방지하기 위한 map idIndex : id_list에 있는 id의 인덱스 번호 저장 map saveReportId : 각 유저가 신고한 유저를 저장하는 배열 ..
https://programmers.co.kr/learn/courses/30/lessons/92343 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr 완전 탐색. 우선 0번째 노드는 항상 양이 있기 때문에 answer = 1로 시작한다. length는 info의 길이로, 노드의 개수가 된다. graph는 각 노드에서 자식 노드가 있으면 자식 노드의 번호를 배열 ..
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..