프로그래머스 11

[프로그래머스] 코테 (분수의 덧셈)

일단 최종 코드는.. 이렇게 된다... function gcd(a, b) { return b === 0 ? a : gcd(b, a % b); } function solution(numer1, denom1, numer2, denom2) { // 두 분모의 최소공배수(lcm) 계산 const lcm = (denom1 * denom2) / gcd(denom1, denom2); // 각 분자를 두 분모에 맞게 확장 const newNumer1 = numer1 * (lcm / denom1); const newNumer2 = numer2 * (lcm / denom2); // 두 분수를 더한 분자 계산 const resultNumer = newNumer1 + newNumer2; // 결과 분자와 lcm의 최대공약수(..

[프로그래머스] 코테 (자릿수 더하기)

나의 코드 function solution(n) { return String(n).split('').reduce((sum, digit) => sum + parseInt(digit,10),0); } 설명 1. String(n) : 주어진 정수 n을 문자열로 변환한다. => 이렇게 함으로써 정수의 각 자리 숫자를 하나씩 분리하고 처리할 수 있음!! 2. .split('') : 변환된 문자열을 빈 문자열 ''을 기준으로 나눈다. => 이 결과로 배열이 생성되며, 각 배열 요소는 문자열의 각 자리 숫자를 담게 된다. 3. .reduce((sum, digit) => sum + parseInt(digit, 10), 0) : 배열을 reduce() 함수를 사용하여 합산하는 작업을 가진다 => reduce() 함수는 ..

[프로그래머스] 코테 (배열자르기)

나의 풀이) -slice를 이용해서 파라미터에 (num1, num2+1)넣기! 코드) function solution(numbers, num1, num2) { return numbers.slice(num1,num2+1); } 왜 num2+1 을 했을까? : Array.slice(start, end) 함수 start 인덱스부터 end 인덱스 전까지의 부분 배열을 반환하기 때문!! 즉, end 인덱스의 요소는 결과에 포함되지 않는다. 따라서, num2번째 인덱스까지 포함하여 자르려면 end 인덱스에 num2 + 1 값을 사용해야 한다!

[프로그래머스] 코테 (피자 나눠 먹기 (3))

나의 풀이 function solution(slice, n) { const result = Math.ceil(n/slice) return result; } function solution(slice, n) { solution이라는 함수를 선언하며, 매개변수로 피자 조각 수 slice와 피자를 먹는 사람의 수 n을 받는다. const result = Math.ceil(n/slice) n 명의 사람이 최소 한 조각 이상을 먹으려면 필요한 피자 판의 수를 계산한다. n을 slice로 나누고, Math.ceil 함수를 사용하여 올림하여 다음 정수로 반올림한다. 이유 : 한 판의 피자를 나누어 줄 때에는 올림으로 처리해야 최소한 한 조각 이상을 보장할 수 있기 때문!!

[프로그래머스] 코테 (편지)

문제 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message 를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요. 제한사항 공백도 하나의 문자로 취급합니다. 1 ≤ message의 길이 ≤ 50 편지지의 여백은 생각하지 않습니다. message는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다. 입출력 예 "happy birthday!" 30 "I love you~" 22 나의 풀이 function solution(message) { const charWidth = 2; // 각 글자의 가로 크기 (2..

728x90