본문 바로가기
반응형

Algorithm/문제풀이63

[HackerRank] Migratory Birds (Easy) by javascript ▷ 문제 : Migratory Birds (Easy) Migratory Birds | HackerRank Determine which type of bird in a flock occurs at the highest frequency. www.hackerrank.com ▷ 해결 날짜 : 2022.04.19 ▷ 소요 시간 : 10분 ▷ 풀이 과정 : 가장 많이 사용된 번호를 반환하는건데 가장 많이 사용된 번호가 여러개일 경우 가장 작은수를 반환하면 되는 문제이다. 적절하게 Map을 사용하면 손쉽게 해결할 수 있다. 결과값을 뽑을때 배열 메서드를 사용하면 한줄이면 될 거 같은데, 그냥 성능상 for문 한번이면 될 거 같아서 for문을 돌려서 결과값을 뽑아냈다. ▷ 구현 function migratoryBir.. 2022. 4. 19.
[HackerRank] Non-Divisible Subset(Medium) by javascript ▷ 문제 : Non-Divisible Subset (Medium) Non-Divisible Subset | HackerRank Find the size of the maximal non-divisible subset. www.hackerrank.com ▷ 해결 날짜 : 2022.04.19 ▷ 소요 시간 : 2시간 ▷ 풀이 과정 : 이 문제는 토론장의 도움을 받아 해결했으나 사실 아직까지도 제대로 이해를 못 했다... 일단 이 문제는 s 배열에서 두 원소의 합이 k의 배수가 아닌 것들의 개수를 구하면 되는 문제다. 시간 복잡도에 걸리지 않게 조합을 만들어 푼다기보다 개수만 세어주는 편이 좋다. 그렇기 때문에 나머지를 이용해서 문제를 해결해야 하는데, 임의의 숫자 k에 대해 (a + b) % k === 0의.. 2022. 4. 19.
[HackerRank] Climbing the Leaderboard (Medium) by javascript ▷ 문제 : Climbing the Leaderboard (Medium) Climbing the Leaderboard | HackerRank Help Alice track her progress toward the top of the leaderboard! www.hackerrank.com ▷ 해결 날짜 : 2022.04.19 ▷ 소요 시간 : 50분 ▷ 풀이 과정 : 이번 문제는 플레이어가 점수를 갱신할 때 마다 변경된 랭크를 반환해 주는 문제이다. ranked = [100, 90, 90, 80] , player = [70, 80, 105] 를 입력 받았을 때 결과값으로는 [4, 3, 1]을 반환해줘야 한다. 우선 여기서 까다로운점은 공동 순위가 존재해 저 ranked 의 순위는 [1, 2, 2, 3].. 2022. 4. 19.
[HackerRank] Number Line Jumps(Easy) by javascript ▷ 문제 : Number Line Jumps (Easy) Number Line Jumps | HackerRank Can two kangaroo meet after making the same number of jumps? www.hackerrank.com ▷ 해결 날짜 : 2022.04.19 ▷ 소요 시간 : 20분 ▷ 풀이 과정 : 두 캥거루가 점프해서 앞을 나아가는데 둘이 겹치는 부분이 있는지 없는지를 체크하는 문제이다. x1, v1, x2, v2 매개변수가 주어지는데, x 는 캥거루 v는 점프 거리이며 x2가 항상 멀리서 시작한다는 점을 염두해 두고 풀면 단순 반복문으로도 쉽게 풀 수 있다. ▷ 구현 function kangaroo(x1, v1, x2, v2) { // Write your code .. 2022. 4. 19.
[Codility] MaxProductOfThree(Easy) by javascript - AVAILABLE LESSONS 6 ▷ 문제 : AVAILABLE LESSONS 6 - MaxProductOfThree(Easy) MaxProductOfThree coding task - Learn to Code - Codility Maximize A[P] * A[Q] * A[R] for any triplet (P, Q, R). app.codility.com ▷ 해결 날짜 : 2022.04.15 ▷ 소요 시간 : 10분 ▷ 풀이 과정 : 배열 안의 숫자중에 3개씩 곱해서 나오는 가장 큰 값을 출력하면 되는 문제이다. 음수가 없으면 한줄이면 충분한데 음수가 포함되어있어 음수의 경우와 양수의 경우를 구해 최대값을 구해주는 방식으로 풀었다. ▷ 구현 function solution(A) { A.sort((a, b) => a - b); let m.. 2022. 4. 15.
[Codility] MaxCounters(Medium) by javascript - AVAILABLE LESSONS 4 ▷ 문제 : AVAILABLE LESSONS 4 - MaxCounters (Medium) MaxCounters coding task - Learn to Code - Codility Calculate the values of counters after applying all alternating operations: increase counter by 1; set value of all counters to current maximum. app.codility.com ▷ 해결 날짜 : 2022.04.14 ▷ 소요 시간 : 1시간 ▷ 풀이 과정 : 사실문제는 그렇게 어렵지 않다. 코드 리티 특성상 영문으로 된 문제를 해석해보면 배열의 크기 N이 주어지고 두 번째로 규칙이 들어간 숫자로 이루어진 A 배열이 주.. 2022. 4. 14.
[프로그래머스] 가장 먼 노드(LV.3) by javascript - 그래프 ▷ 문제 : 그래프 - 가장 먼 노드 LV.3 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr ▷ 해결 날짜 : 2022.04.12 ▷ 소요 시간 : 30분 ▷ 풀이 과정 : 그래프 모양이 주어지고, 1번 노드부터 시작해서 가장 멀리 떨어진 노드의 개수를 구하는 문제이다. 그래프를 우선 그리고, 방문 체크 겸 거리를 저장할 배열을 만들어두고 탐색을 구현하였다. ▷ 구현 function solution(n, edge) { const graph = Array.from(Array(n + 1), () => []); for (const [from, to] of edge){ graph[fr.. 2022. 4. 12.
[프로그래머스] 네트워크(LV.3) by javascript - 깊이/너비 우선 탐색(DFS/BFS) ▷ 문제 : 깊이/너비 우선 탐색(DFS/BFS) - 네트워크 LV.3 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr ▷ 해결 날짜 : 2022.04.08 ▷ 소요 시간 : 50분 ▷ 풀이 과정 : 문제 자체에 이미 연결 정보가 주어져 그걸 가지고 서로 연결되어있는 집단의 개수가 총 몇 개인지 출력하는 문제이다.나름 구조가 평범한 그래프 탐색 알고리즘 문제와 비슷해서 생각보다 쉽게 풀었다. 좀 강박관념일수도 있는데, 사용하기 쉽게 그래프를 다시 한번 그리고 그걸 가지고 알고리즘을 실행시켜 구현하였다. .. 2022. 4. 8.
[프로그래머스] 단어 변환(LV.3) by javascript - 깊이/너비 우선 탐색(DFS/BFS) ▷ 문제 : 깊이/너비 우선 탐색(DFS/BFS) - 단어 변환 LV.3 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr ▷ 해결 날짜 : 2022.04.08 ▷ 소요 시간 : 1시간 30분 ▷ 풀이 과정 : 일단 문제는 그래프 탐색 알고리즘을 사용해서 풀면 된다. 두 개의 단어 begin, target과 단어의 집합 words가 주어지는데, 아래에 주어진 두 규칙을 이용해 가장 짧은 변환 과정을 찾으면 된다. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. words.. 2022. 4. 8.
반응형
TOP