본문 바로가기

Fundamentals/Algorithms

(25)
[해커랭크] Time Conversion 문제링크 Time Conversion | HackerRank Convert time from an AM/PM format to a 24 hour format. www.hackerrank.com 12시간제 AM/PM 형식으로 주어진 시간을 24시간제로 변환하는 것이 문제의 목표입니다.주의사항: 12시간제에서 '12:00:00AM'은 24시간제에서 '00:00:00'입니다. 12시간제에서 '12:00:00PM'은 24시간제에서 '12:00:00'입니다. 풀이 : function timeConversion(s: string): string { const isAM = s.includes('AM'); const time = s.substring(0,8).split(':') if(isAM && time[0] ===..
[해커랭크] Birthday Cake Candles 문제링크 Birthday Cake Candles | HackerRank Determine the number of candles that are blown out. www.hackerrank.com 어린이의 생일 케이크를 담당하고 있으며, 케이크에는 그들의 나이만큼의 촛불이 있습니다. 가장 높은 촛불만 불어서 끌 수 있습니다. 가장 높은 촛불이 몇 개인지 세는 것이 문제의 목표입니다. 풀이 : function birthdayCakeCandles(candles: number[]): number { const max = Math.max(...candles); return candles.filter(candle => candle === max).length; } Math.max 함수를 사용하여 배열에서 최대값..
[해커랭크] Staircase 문제링크 Staircase | HackerRank Print a right-aligned staircase with n steps. www.hackerrank.com 이 문제에서는 크기가 n인 계단을 출력해야 합니다. 계단의 기초와 높이는 모두 n과 같으며, # 기호와 공백을 사용하여 그려집니다. 마지막 줄은 공백 없이 시작합니다. 풀이 : function staircase(n: number): void { const list = new Array(n).fill(' ') for(let i=1; i
[해커랭크] Mini-Max Sum 문제링크 Mini-Max Sum | HackerRank Find the maximum and minimum values obtained by summing four of five integers. www.hackerrank.com 다섯 개의 양의 정수가 주어졌을 때, 정확히 네 개의 정수를 합산하여 계산할 수 있는 최소값과 최대값을 찾습니다. 그리고 두 개의 긴 정수로 구성된 한 줄에 각각의 최소값과 최대값을 출력합니다. 예를 들어, 주어진 숫자가 1, 2, 3, 4, 5라면, 다음과 같이 계산할 수 있습니다. 1, 2, 3, 4를 합하면 최소 합은 10이 됩니다. 2, 3, 4, 5를 합하면 최대 합은 14가 됩니다. 함수는 10 14를 출력해야 합니다. 풀이 : function miniMaxSum(a..
[해커랭크] Diagonal Difference 문제링크 Diagonal Difference | HackerRank Calculate the absolute difference of sums across the two diagonals of a square matrix. www.hackerrank.com 주어진 정사각형 행렬의 대각선들의 합의 절대 차이를 계산합니다. 예를 들어, 아래와 같은 정사각형 행렬이 주어졌을 때: 1 2 3 4 5 6 9 8 9 왼쪽에서 오른쪽으로 가는 대각선의 합은 1 + 5 + 9 = 15이고, 오른쪽에서 왼쪽으로 가는 대각선의 합은 3 + 5 + 9 = 17입니다. 이 두 합의 절대 차이는 |15 - 17| = 2입니다. 풀이 : function diagonalDifference(arr: number[][]): numbe..
[해커랭크] A Very Big Sum 문제링크 A Very Big Sum | HackerRank Calculate the sum of the values in an array that might exceed the range of int values. www.hackerrank.com 배열 요소들의 모든 합을 반환합니다. 단, 배열에 포함된 정수 일부는 매우 클 수 있습니다. 풀이 : function aVeryBigSum(ar: number[]): number { return ar.reduce((acc, cur) => acc+cur, 0); } reduce를 활용하여 배열 요소를 순회하며 누적 합계를 계산하여 결과값을 반환합니다. 다른 풀이 : 만약 요소의 값 범위가 정해지지 않은 경우라면? function aVeryBigSum(ar: nu..
[해커랭크] Compare the Triplets 문제링크 Compare the Triplets | HackerRank Compare the elements in two triplets. www.hackerrank.com Alice와 Bob이 각각 하나씩 문제를 만들어 HackerRank 플랫폼에 제출했고, 한 리뷰어가 세 가지 기준(문제의 명확성, 독창성, 난이도)에 대해 1부터 100까지 점수를 매기는 상황입니다. Alice의 문제에 대한 평가는 a = (a[0], a[1], a[2])로, Bob의 문제에 대한 평가는 b = (b[0], b[1], b[2])로 주어집니다. 각 카테고리별로 Alice와 Bob의 점수를 비교하여, 더 높은 점수를 받은 사람에게 1점씩 부과하는 방식입니다 풀이 : function compareTriplets(a: numb..
[해커랭크] Simple Array Sum 문제링크 Simple Array Sum | HackerRank Calculate the sum of integers in an array. www.hackerrank.com 배열의 정수 요소들의 합을 찾는 프로그래밍 문제로 예를 들어, 배열이 [1, 2, 3, 4, 10, 11]이면, 이 요소들의 합은 31이므로, 31을 반환합니다 풀이 : function simpleArraySum(ar: number[]): number { // Write your code here return ar.reduce((acc, cur) => acc + cur, 0) } simpleArraySum 함수는 number[] 타입의 배열을 매개변수로 받고, number 타입의 값을 반환합니다. 배열의 모든 요소를 더하기 위해 re..