알고리즘 59

[프로그래머스] 모음사전 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요. 제한사항 word의 길이는 1 이상 5 이하입니다.word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다.입출력 예wordresult"AAAAE"..

[프로그래머스] 롤케이크 자르기 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제제한사항 1 ≤ topping의 길이 ≤ 1,000,000 1 ≤ topping의 원소 ≤ 10,000입출력 예toppingresult [1, 2, 1, 3, 1, 4, 1, 2] 2 [1, 2, 3, 1, 4] 0 입출력 예 설명입출력 예 #1 롤케이크를 [1, 2, 1, 3], [1, 4, 1, 2] 또는 [1, 2, 1, 3, 1], [4, 1, 2]와 같이 자르면 철수와 동생은 각각 세 가지 토핑을 맛볼 수 있습니다. 이 경우 공평하게 롤케이크를 나누는 방법은 위의 두 가지만 존재합니다.입출력 예 #2 롤케이크를 공평하게 나눌 수 없습니다. ..

[프로그래머스] 게임 맵 최단 거리 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제제한사항 maps는 n x m 크기의 게임 맵의 상태가 들어있는 2차원 배열로, n과 m은 각각 1 이상 100 이하의 자연수입니다. n과 m은 서로 같을 수도, 다를 수도 있지만, n과 m이 모두 1인 경우는 입력으로 주어지지 않습니다. maps는 0과 1로만 이루어져 있으며, 0은 벽이 있는 자리, 1은 벽이 없는 자리를 나타냅니다. 처음에 캐릭터는 게임 맵의 좌측 상단인 (1, 1) 위치에 있으며, 상대방 진영은 게임 맵의 우측 하단인 (n, m) 위치에 있습니다.입출력 예 maps answer [[1,0,1,1,1],[1,0,1,0,1],..

[프로그래머스] 타겟 넘버 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제 제한사항 입출력 예입출력 예 설명 2. 정답 풀이풀이 전략모든 연산자의 케이스를 담는 연산자 배열을 만든다.연산자 배열을 순회하며 연산을 수행한다.연산의 결과가 target과 같으면 answer를 증가시킨다.function solution(numbers, target) { let answer = 0; const len = numbers.length; for (let i = 0; i + 리턴 operators.push((i & (1 { num = operator === '+' ? num + ..

[프로그래머스] 뉴스 클러스터링(2018 Kakao Blind Recruitment) (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제제한사항 입출력 예출력 형식 2. 오답function solution(str1, str2) { const arr1 = new Map(); // str1을 두 글자씩 끊어서 만든 다중집합의 원소 const arr2 = new Map(); // str2를 두 글자씩 끊어서 만든 다중집합의 원소 let cntUnion = 0; // 합집합 카운트 let cntIntersection = 0; // 교집합 카운트 // 비교를 위해 소문자로 통일 str1 = str1.toLowerCase(); str2 = str2.toLo..

[프로그래머스] 전화번호 목록 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제 제한사항 입출력 예입출력 예 설명2. 오답function solution(phone_book) { phone_book.sort((a,b) => a.length - b.length); for (let i=0; i idx !== i && p.startsWith(phone_book[i])).length > 0) { return false; }; } return true;}테스트 케이스는 모두 통과했지만, 효율성 테스트에서 탈락이다...😂😂반복 횟수 줄일 수 있는 방법을 생각해 보자. ..

[프로그래머스] 프로세스 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제제한사항 입출력 예입출력 예 설명 2. 정답 풀이풀이 전략큐 활용.정답을 위한 인덱스 배열 idx 선언우선순위가 가장 높은 프로세스인 경우 큐와 인덱스 배열에서 삭제한다.우선순위가 더 높은 프로세스가 큐에 있는 경우 큐와 인덱스 배열에서 삭제 후 마지막에 추가한다.우선순위가 가장 높은 프로세스면서 index가 location인 경우 순회를 종료하고 정답 리턴function solution(priorities, location) { let answer = 0; // 실행 대기 큐의 인덱스 배열 let idx = Array.from({l..

[프로그래머스] 튜플 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제 제한사항 입출력 예입출력 예 설명 2. 정답 풀이풀이 전략문자열 형태의 입력 s를 배열 형태로 바꾼다.정규식을 이용해 {}를 [] 형태로 변환한다.변환된 형태가 '[[4,2,3],[3],[2,3,4,1],[2,3]]'와 같은 문자열이기 때문에 JSON.parse를 사용해 배열로 변환한다.배열을 튜플의 길이 순으로 오름차순 정렬한다.오름차순 정렬한 튜플 배열을 순회하며 중복이 아니면  answer 배열에 추가한다.function solution(s) { const answer = []; // [{}]/g : 정규식으로 문자열 전역으..

[프로그래머스] 피로도 (LV2 - JavaScript)

1. 문제 제한사항 입출력 예입출력 예 설명 2. 정답 풀이풀이 전략깊이 우선 탐색 (Depth-First Search) 사용던전을 탐험했는지 확인하기 위한 hash 배열 사용재귀 함수 호출을 통해 던전 입장 순서별로 탐험 가능한 최대 던전 수를 계산Math.max 메서드로 재귀 함수 결과 중 최대 값을 returnfunction solution(k, dungeons) { const hash = Array.from({length: dungeons.length}, () => 0); let answer = 0; // 깊이 우선탐색(Depth-First-Search) const dfs = (k, cnt) => { for(let i=0; i= dungeons[i][0])..

[프로그래머스] 의상 (LV2 - Javascript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 문제코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다. 예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다.종류이름얼굴동그란 안경, 검정 선글라스상의파란색 티셔츠하의청바지겉옷긴 코트코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 ..