문제1
https://programmers.co.kr/learn/courses/30/lessons/12947
문제 풀이
toString()
대신 + ""
로 문자열을 처리함split()
로 배열로 변경해줌 reduce()
를 사용Number()
, ParseInt()
, +
중에 +
를 사용하여 문자열을 숫자로 형 변환function solution(x) {
let number = (x + "").split("").reduce((acc,val) => +((+acc) + (+val)));
if(x % number === 0){
return true;
}
return false;
}
문제2
https://programmers.co.kr/learn/courses/30/lessons/12901
function solution(a, b) {
const date = new Date(`${a},${b},2016`);
let day= (date+"").split(' ');
return day[0].toUpperCase()
}
function solution(a, b) {
let date = new Date(`2016, ${a} ${b}`);
let arr = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
return arr[date.getDay()]
}
Date()
메소드Date.getDay()
getDay() 메서드는 주어진 날짜의 현지 시간 기준 요일을 반환합니다Date.getDate()
getDate() 메서드는 주어진 날짜의 현지 시간 기준 일문제3
https://programmers.co.kr/learn/courses/30/lessons/12969
문제 풀이
Array().fill()
메소드 사용join()
메소드를 두번 사용하여 2차원 배열을 문자열로 바꿔줌풀이1
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
let arr = Array(b).fill(Array(a).fill("*"));
console.log(arr.map((el)=>el.join("")).join("\n"))
});
다른 사람 풀이
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
const row = '*'.repeat(a)
for(let i =0; i < b; i++){
console.log(row)
}
});
join(\n)
join메소드와 줄 바꿈을 같이 사용할 수 있다는것 을 알았습니다.repeat()
메소드 : repeat메소드의 사용법 str.repeat()
문제4
https://programmers.co.kr/learn/courses/30/lessons/12934
풀이1
function solution(n) {
let number = Math.sqrt(n);
if(!Number.isInteger(number)){
return -1;
}
return Math.pow(number + 1, 2);
}
풀이2
function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? Math.pow(Math.sqrt(n) + 1 ,2) : -1
}
다른 사람 풀이
function nextSqaure(n){
switch(n % Math.sqrt(n)){
case 0:
return Math.pow(Math.sqrt(n) + 1, 2);
default:
return -1
}
}
Math.sqrt()
메소드 : 루트를 씌워 해당 값을 반환Math.pow()
메소드 : 해당 값을 제곱Number.isInteger()
메소드 : 정수인지 판별 , 소수점인지 판별할때 유용문제5
https://programmers.co.kr/learn/courses/30/lessons/12940?language=javascript
function solution(a, b) {
var answer = [];
var minNum = Math.min(a, b);
var maxNum = Math.max(a, b);
answer.push(gcd(minNum, maxNum))
answer.push(lcm(minNum, maxNum))
return answer;
}
// 최대공약수
function gcd(minNum, maxNum){
return (minNum % maxNum) === 0 ? maxNum : gcd(maxNum, minNum % maxNum);
}
// 최소공배수
function lcm(minNum, maxNum){
return minNum * maxNum / gcd(minNum, maxNum);
}