
⭐⭐⭐
💡 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
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 알고리즘 문제들은 수학적인 공식들을 모르면 풀기 어려운 문제들이었다 . . . (잘 모르는 사람 = 나) ㅜㅜㅜ 😥😥😥