문제 세 개의 각도를 담은 문자열을 입력으로 받습니다. 각각의 각도는 공백으로 구분되며 줄 바꿈으로 구분됩니다. 주어진 각도들로 이루어진 삼각형의 종류를 판별하여 반환합니다. 주어진 각도들로 삼각형을 만들 수 없다면 Error를 반환합니다. 삼각형이라면, 이 삼각형이 정삼각형인지, 이등변삼각형인지, 또는 일반적인 삼각형인지를 판별하여 Equilateral, Isosceles, Scalene 중 하나를 반환합니다. 입력 줄바꿈을 기준으로하여 3줄 정수가 들어갑니다. 예시 const test_case = `60 60 60` // Equilateral 출력 풀이 function classifyTriangle(angles) { const angleArray = angles.split('\n').map(Numbe..
문제 세 개의 좌표를 입력으로 받습니다. 각 좌표는 x와 y 좌표값으로 이루어진 숫자입니다. 이 함수는 주어진 세 개의 좌표 중 중복되지 않는 좌표를 찾아서 문자열 형태로 반환합니다. 중복되지 않는 좌표는 x 좌표와 y 좌표 모두에서 중복되지 않는 좌표를 의미합니다. 예를 들어,(30, 20), (10, 10), (10, 20) 세 개의 좌표 중에서 중복되지 않는 좌표는 (30, 10)입니다. 따라서 함수는 문자열 "30 10"를 반환해야 합니다. 입력 x좌표 중에서 항상 2개는 같은 x 좌표입니다. y좌표 중에서 항상 2개는 같은 y 좌표입니다. x와 y의 구분자는 띄어쓰기이고 좌표끼리의 구분자는 엔터입니다. 풀이 function findUniqueCoordinate(coordinates) { cons..
문제 정수 n을 입력으로 받습니다. 입력 n을 소인수분해한 결과를 배열로 반환합니다. 여기서 소인수분해란 주어진 수를 소수의 곱으로 나타내는 것을 말합니다. 풀이 function primeFactorization(n) { const result = []; while (n > 1) { for (let i = 2; i
문제 공백으로 구분된 숫자 문자열 n을 입력으로 받습니다. 입력된 n에 포함된 숫자 중 소수의 개수를 반환합니다. 여기서 소수란 1과 자기 자신만을 약수로 가지는 양의 정수를 말합니다. 예시 const test_case = '1 2 3 4 5 6 7 8 9' // 4출력 풀이 function countPrimes(n) { return n .split(' ') .map(Number) .filter((e) => { let prime = true; if (e === 1) prime = false; for (let i = 2; i < e; i++) { if (e % i === 0) { prime = false; break; } } return prime; }).length; } 공백이 포함된 n을 일단 각각의 ..
문제 두 개의 정수 n과 k를 입력으로 받습니다. 이 함수는 n의 약수 중에서 k번째로 작은 약수를 찾아 반환합니다. 여기서 약수란 n을 나누어 떨어지게 하는 모든 양의 정수를 말합니다. k번째인 약수가 없을 때 0을 리턴합니다. 입력 공백으로 구분된 정수 n과 k가 입력됩니다. 예시 const test_case = '20 4' // 5출력 풀이 function findKthDivisor(n, k) { for (let i = 1; i
문제 짱짱이는 사다리 오르내리기를 즐겨합니다. 짱짱이는 매번 사다리의 맨 위로 올라가는데, 사다리를 오를 때마다 자신의 위치에서 힘이 빠져서 내려갑니다. 하지만, 사다리의 높이를 모두 올라갈 때까지 몇 번 올라가는 프로그램을 작성하시오 입력 올라가는 높이 정수 p와 힘이 빠져서 내려가는 m과 총 사다리 높이인 h가 주어집니다. 예시 const p = 2 const m = 1 const h = 3이면 // 2 출력 풀이 function upCount(p, m, h) { return Math.ceil((h - p) / (p - m)) + 1; } 마지막에 떨어지기 전에 p만큼 올라가면 다 올라간거기 때문에 총 사다리 높이에서 p만큼 미리 빼주고 나누기 때문에 1를 더해줍니다. 1를 더하지 않을려면 총 높이 ..