본문 바로가기
반응형

Algorithm73

[Codility] Brackets (Easy) by javascript - AVAILABLE LESSONS 7 ▷ 문제 : AVAILABLE LESSONS 7 - Brackets (Easy) Brackets coding task - Learn to Code - Codility Determine whether a given string of parentheses (multiple types) is properly nested. app.codility.com ▷ 해결 날짜 : 2022.04.20 ▷ 소요 시간 : 30분 ▷ 풀이 과정 : 괄호의 짝을 맞추는 문제이다. 일단 Lesson7 은 Stacks and Queues 문제이기 때문에 이 문제는 Stack을 사용하면 된다는 것을 알 수 있다. 여는 괄호가 나왔을 때 스택에 담아두고 닫는 괄호가 나왔을때 하나씩 배서 비교해주는 로직을 만들어주면 구현할 수 있다. 몇.. 2022. 4. 20.
[HackerRank] Repeated String (Easy) by javascript ▷ 문제 : Repeated String (Easy) Repeated String | HackerRank Find and print the number of letter a's in the first n letters of an infinitely large periodic string. www.hackerrank.com ▷ 해결 날짜 : 2022.04.19 ▷ 소요 시간 : 20분 ▷ 풀이 과정 : 문자열과 최대길이가 주어지고 문자열을 최대길이까지 반복했을때 나오는 'a'문자가 몇개인지 반환하는 문제이다. 제한사항에 주어진 문자열의 길이제한이 너무 길어서 그냥 단순하게 풀면 에러가 발생한다. 그래서 우선 최대한 문자열의 원본상태가 반복되는 구간까지 구한다음 나머지 문자열을 잘라 붙이고 거기서 각각의 '.. 2022. 4. 19.
[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.
반응형
TOP