목록프로그래머스 알고리즘/KAKAO (56)
N
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..
https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 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 플로이드 와샬을 이용. 우선 n + 1 * n + 1의 크기만큼 배열을 선언하여, ..
https://programmers.co.kr/learn/courses/30/lessons/64062?language=javascript 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr const binarySearch = (stones, mid, k) => { let count = 0; for(let i = 0; i { let front = 0; let back = 200000000; while(front
https://programmers.co.kr/learn/courses/30/lessons/72412 { const answer = []; const infoParsingData = new Map(); const queryParsingData = []; // info 데이터 파싱 for(let i = 0; i Array(2).fill("-")); const score = parseInt(data.splice(4)); for(let j = 0; j < 4; j++){ string[j][0] = data[j]; } for(const ..
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 완전 탐색을 실시. isPossible()함수를 통해 현재 방의 거리두기가 제대로 되어 있..
https://programmers.co.kr/learn/challenges 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 주어진 문자열에서 숫자가 영단어로 이뤄진 경우 숫자로 바꿔 리턴하면 된다. for문을 통해 s의 문자를 확인한다. zero, one, eight, nine 처럼 영단어의 시작이 다른 숫자와 겹치지 않기 때문에 해당하는 숫자(문자열로 저장)를 answer에 저장한다. 그리고 단어의 길이 - 1을 i에 더해 다음 문자를 읽도록 한다. 만약 two, three, four, five와 같이 중복되는 경우 substr()함수를 이용해 한번 더 검사하여 해당하는 숫자를 저장한다. 마찬가지로 i에 단어의 길이 - 1을 더한다. 리턴값은 int형이..
https://programmers.co.kr/learn/courses/30/lessons/60058?language=javascript 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 스택과 재귀를 활용. 문제의 예시처럼 순서대로 코딩하면 된다. isBalanced(string) 함수 설명: 인자로 받은 string 배열이 균형잡힌 괄호인지 확인하는 함수. 스택을 이용해 괄호를 검사한다. stack이 비어있으면 string 배열은 균형잡힌 괄호라는 뜻으로 true를 반환한다. reverse(string) 함수..
https://programmers.co.kr/learn/courses/30/lessons/64065?language=javascript 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 문자열로 된 s를 숫자로 바꿔 array 또는 set 배열에 넣어주자. s[i]가 '0' ~ '9'라면 string으로 연결한다. 만약 s[i]가 쉼표(,)이거나 닫는 괄호({)라면 array에 넣거나 set에 넣어준다. 넣는 조건은 string의 길이이다. string이 빈..