오늘은 알고리즘 문제를 다양하게 풀어보았다.
주어진 숫자 안에 약수들을 포함한 배열을 반환하는 문제
function solution(n) {
var answer = [];
for(let i =1;i<=n;i++){
if(n%i===0) answer.push(i)
}
return answer;
}
1부터 주어진 숫자까지 for문을 돌면서 만약 수를 i로 나누었을대 나머지가 0이면 해당 값을 배열에 push하도록 하였다.
배열에서 숫자 크기 순서대로 정렬한 후 가운데 값을 반환
function solution(array) {
array.sort((x,y)=>{return x-y})
return array[Math.floor(array.length/2)];
}
sort()매서드로 배열을 오름차순으로 정렬하고 배열의 길이를 반으로 나누고 floor()를 사용해서 절반의 값을 반환하도록 하였다.
주어진 숫자 만큼 ' * '으로 직각삼각형을 출력
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
for (let i = 1; i <= +input[0]; i++) console.log('*'.repeat(i));
});
for문rhk repeat()를 사용해서 직각삼각형을 출력
대문자는 소문자로 소문자는 대문자로 문자열을 바꿔서 리턴
function solution(my_string) {
return my_string.split("").map((ele)=>{
const ascii = ele.charCodeAt( )
if(65<=ascii&&ascii<=90) return String.fromCodePoint(ascii+32)
if(97<=ascii&&ascii<=122) return String.fromCodePoint(ascii-32)
}).join("")
}
아스키 코드를 사용해서 문제를 해결했다. 아스키 코드에서 대문자와 소문자는 32의 차이가 난다. 이를 이용해서 if문을 작성하고 리턴한 후에 join()을 사용해서 문자열을 반환하였다.