58. 369게임
const solution = (order) => {
let answer = 0;
let tmpArr = (order + '');
let removeZero = [...(tmpArr.replaceAll('0', '') + '')];
removeZero.forEach(el => {
if(el % 3 === 0) {
answer++;
}
})
return answer;
}
59. 중복된 문자 제거
const solution = (my_string) => {
let answer = '';
let tmpArr = [...my_string];
answer = [... Set(tmpArr)].join('');
return answer;
}
60. 팩토리얼
const solution = (n) => {
let answer = 1;
for(let i = 1; i <= n; i++) {
answer *= i;
if(answer === n){
return i;
}
if(answer > n){
return i - 1;
}
}
}
61. 모스부호(1)
const solution = (letter) => {
let answer = '';
let tmpArr = [];
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'
}
letter.split(' ').forEach(el => {
tmpArr.push(morse[el]);
})
answer = tmpArr.join('');
return answer;
}
62. A로 B만들기
const solution = (before, after) => {
let answer = 0;
answer = [...before].sort().toString() === [...after].sort().toString() ? 1 : 0;
return answer;
}
63. 합성수 만들기
const solution = (n) => {
let answer = 0;
for(let i = 2; i <= n; i++) {
if(isCompoNum(i)) {
answer++;
}
}
return answer;
}
/* 합성수 판별 함수 */
function isCompoNum(num) {
let count = 0;
for(let i = 1; i <= Math.sqrt(num); i++) {
if(num % i === 0) {
count++;
}
}
if(count > 1) {
return true;
}
}
64. k의 개수
const solution = (i, j, k) => {
let answer = 0;
let tmpArr = [];
let tmpString;
let regExp = new RegExp(`[^${k}]`, 'gi');
for(let a = i; a <= j; a++) {
tmpArr.push(a);
}
answer = tmpArr.join('').replace(regExp,'').length;
return answer;
}
/* 더 좋은 풀이방법을 모색해봐야겠다. */
65. 가까운 수
const solution = (array, n) => {
let answer = 0;
let tmpArr = [];
let sortArr = array.sort((a, b) => a - b);
for(let i = 0; i < sortArr.length; i++) {
tmpArr.push(Math.abs(sortArr[i] - n));
}
let minNum = Math.min(...tmpArr);
answer = sortArr[tmpArr.indexOf(minNum)];
return answer;
}
66. 진료순서 정하기
66-1. 첫번째 풀이
const solution = (emergency) => {
let answer = [];
let tmpArr = JSON.parse(JSON.stringify(emergency)).sort((a, b) => b - a);
let tmpObj = {};
for(let key in tmpArr) {
tmpObj[key] = tmpArr[key];
}
for(let i = 0; i < emergency.length; i++) {
for(let j = 0; j < emergency.length; j++) {
if(emergency[i] === tmpObj[j]) {
answer.push(j + 1)
}
}
}
return answer;
}
66-2. 두번째 풀이
const solution = (emergency) => {
let answer = [];
let sortEmergency = [...emergency].sort((a, b)=> b - a);
answer = emergency.map(el => {
return sortEmergency.indexOf(el) + 1;
});
return answer;
}
==> 처음 풀이 당시 마구잡이로 풀었는데, 블로그에 올리려고 보니 이중for문에 심지어 if문까지.. 과거의 내 생각이 너무 바보같아 바꿨다..
67. 한 번만 등장한 문자
const solution = (s) => {
let answer = '';
let tmpArr = [...s];
let answerArr = [];
for(let i = 0; i < s.length; i++) {
if(s.indexOf(s[i]) === s.lastIndexOf(s[i])) {
answerArr.push(s[i]);
};
};
answer = answerArr.sort().join('');
return answer;
}