본문 바로가기

Fundamentals/Algorithms

(25)
[해커랭크] Migratory Birds 문제링크 Migratory Birds | HackerRank Determine which type of bird in a flock occurs at the highest frequency. www.hackerrank.com 새 관찰 데이터가 담긴 배열이 주어집니다. 각 요소는 새의 종류를 나타내는 ID입니다. 가장 자주 관찰된 새의 종류 ID를 결정하세요. 만약 최대 횟수로 관찰된 새의 종류가 여러 개라면, 그 중 가장 작은 ID를 반환하세요. 문제풀이 : function migratoryBirds(arr) { const count = {} let max = 0; let minType = 6 arr.forEach((value, index)=>{ count[value] = (count[value] || ..
[해커랭크] Divisible Sum Pairs 문제링크 Divisible Sum Pairs | HackerRank Count the number of pairs in an array having sums that are evenly divisible by a given number. www.hackerrank.com 정수 배열과 양의 정수 k가 주어질 때, i < j이고 ar[i] + ar[j]가 k로 나누어 떨어지는 쌍의 개수를 결정하세요. 풀이 : function divisibleSumPairs(n, k, ar) { let count = 0; for(let i=0; i
[해커랭크] Subarray Division 문제링크 두 아이, 릴리와 론은 초콜릿 바를 나누어 먹고 싶어합니다. 초콜릿의 각 조각에는 정수가 적혀 있습니다. 릴리는 다음 조건을 만족하는 연속된 초콜릿 조각을 골라 나누기로 결정합니다: - 조각의 길이가 론의 생일 달과 같아야 하며, - 조각에 적힌 정수들의 합이 론의 생일과 같아야 합니다. 초콜릿을 나눌 수 있는 방법이 몇 가지인지 결정하세요. 풀이 : function birthday(s, d, m) { const result = []; for (let i = 0; i
[해커랭크] camelcase 문제링크 CamelCase | HackerRank www.hackerrank.com CamelCase 형식의 문자열이 주어졌을 때, 이 문자열에 포함된 단어의 개수를 찾는 문제입니다. 첫 단어는 소문자로 시작하고, 이후의 단어들은 첫 글자가 대문자로 시작합니다. 풀이 : function camelcase(s) { let wordCount = 1; for (let i = 0; i < s.length; i++) { if (s[i] === s[i].toUpperCase()) { wordCount++; } } return wordCount; } 첫 단어는 항상 소문자로 시작하므로 1로 초기화합니다.
[해커랭크] Breaking the Records 문제링크 Breaking the Records | HackerRank Given an array of Maria's basketball scores all season, determine the number of times she breaks her best and worst records. www.hackerrank.com 함수는 게임당 점수 배열을 입력으로 받고, 두 개의 값으로 구성된 배열을 반환합니다. 첫 번째 값은 마리아가 최고 점수 기록을 깬 횟수, 두 번째 값은 최저 점수 기록을 깬 횟수입니다. 예를 들어, 마리아가 게임에서 [3, 4, 21, 36, 10, 28, 35, 5, 24, 42] 점수를 얻었다면, 그녀는 최고 점수 기록을 4번, 최저 점수 기록은 0번 깼으므로 결과는 [4, 0]..
[해커랭크] Number Line Jumps 문제링크 Number Line Jumps | HackerRank Can two kangaroo meet after making the same number of jumps? www.hackerrank.com 두 마리의 캥거루가 숫자선 위에서 점프를 하며, 두 캥거루가 동일한 횟수의 점프 후 같은 위치에서 만날 수 있는지를 판단하는 문제입니다.첫 번째 캥거루는 위치 x1에서 시작하여 v1 미터 단위로 점프합니다. 두 번째 캥거루는 위치 x2에서 시작하여 v2 미터 단위로 점프합니다. 두 캥거루가 같은 위치에서 만날 수 있다면 "YES"를, 그렇지 않다면 "NO"를 반환합니다. 풀이 : function kangaroo(x1: number, v1: number, x2: number, v2: number): s..
[해커랭크] Apple and Orange 문제링크 Apple and Orange | HackerRank Find the respective numbers of apples and oranges that fall on Sam's house. www.hackerrank.com Sam의 집 주변에 사과나무와 오렌지나무가 있으며, 이 나무들에서 떨어지는 과일의 수를 계산하는 문제입니다. Sam의 집은 일정한 구간에 위치해 있으며, 사과나무와 오렌지나무는 집의 양쪽에 위치합니다. 각 과일이 나무에서 떨어질 때, 나무로부터 어느 정도 떨어진 지점에 떨어집니다. 이 거리는 양수(오른쪽으로 떨어짐) 또는 음수(왼쪽으로 떨어짐)일 수 있습니다. 주어진 정보를 바탕으로 Sam의 집(지정된 구간)에 떨어지는 사과와 오렌지의 수를 결정합니다. 풀이 : functio..
[해커랭크] Grading Students 문제링크 Grading Students | HackerRank Round student grades according to Sam's rules. www.hackerrank.com 모든 학생은 0에서 100 사이의 성적을 받습니다. 40 미만의 성적은 불합격입니다. 성적 반올림 규칙은 다음과 같습니다. - 성적과 다음 5의 배수와의 차이가 3 미만이면, 성적을 다음 5의 배수로 반올림합니다. - 성적이 40 미만이면, 반올림하지 않습니다. (불합격 성적은 그대로 유지) 풀이 : function roundToFive (num: number) : number { return num % 5 >= 3 ? Math.round(num/5) * 5 : num } function gradingStudents(grade..