⭐⭐⭐
💡 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
sides
가 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/120868
function solution(sides) {
let answer = 0;
// (큰 변 + 작은 변 - 1) - (큰 변 - 작은 변 + 1) + 1
// = 큰 변 + 작은 변 - 1 - 큰 변 + 작은 변 - 1 + 1
// = 작은 변 * 2 - 1
return Math.min(...sides) * 2 - 1;
}
⭐⭐⭐
💡 머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter
가 매개변수로 주어질 때, letter
를 영어 소문자로 바꾼 문자열을 return하도록 solution 함수를 완성해보세요.
모스부호는 다음과 같습니다.
morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'
}
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/120838
function solution(letter) {
let morse = {
'.-':'a', '-...':'b', '-.-.':'c', '-..':'d',
'.':'e', '..-.':'f', '--.':'g', '....':'h',
'..':'i', '.---':'j', '-.-':'k', '.-..':'l',
'--':'m', '-.':'n', '---':'o', '.--.':'p',
'--.-':'q', '.-.':'r', '...':'s', '-':'t',
'..-':'u', '...-':'v', '.--':'w', '-..-':'x',
'-.--':'y', '--..':'z'
}
let answer = letter.split(" ").map(a => morse[a]).join("");
return answer;
}
⭐⭐⭐⭐⭐
💡 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5 입니다. 두 정수 num
과 total
이 주어집니다. 연속된 수 num
개를 더한 값이 total
이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution 함수를 완성해보세요.
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/120923
function solution(num, total) {
let answer = [];
let start = Math.ceil(total / num) - Math.floor(num / 2);
let end = Math.floor(total / num) + Math.floor(num / 2);
for (let i = start; i <= end; i++) {
answer.push(i)
}
return answer;
}
⭐⭐⭐⭐⭐
💡 첫 번째 분수의 분자와 분모를 뜻하는 number1
, denom1
, 두 번째 분수의 문자와 분모를 뜻하는 number2
, denom2
가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return하도록 solution 함수를 완성해보세요.
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/120808
function solution(numer1, denom1, numer2, denom2) {
let answer = [];
let denom = denom1 * denom2
let numer = numer1 * denom2 + numer2 * denom1
let maximum = 1;
for (let i = 1; i <= numer; i++) {
if(numer % i === 0 && denom % i === 0)
maximum = i;
}
answer.push(numer / maximum, denom / maximum);
return answer;
}
이번 주차 JS 알고리즘 문제들은 수학적인 공식들을 모르면 풀기 어려운 문제들이었다 . . . (잘 모르는 사람 = 나) ㅜㅜㅜ 😥😥😥