문제 : 행렬의 덧셈
사용 메서드 : for() or map()
풀이 과정 :
행렬을 배열에서 나타내면 2차원 배열
행렬의 덧셈을 위해서는 내부의 인자까지 들어가야함. => 이중 for문
for문의 내부에서 덧셈을 통해 최종 결과 값을 answer에 저장해주기
for문 version
function solution(arr1, arr2) {
let answer=[[]];
for(let i = 0; i<arr1.length; i++){
answer[i] = []
for(let j=0;j<arr1[0].length;j++){
answer[i][j] = arr1[i][j]+arr2[i][j]
}
}
return answer;
}map version
function solution(arr1,arr2){
let answer;
answer = arr1.map((value1,index1)=> value1.map((value2,index2)=> value2+arr2[index1][index2] ))
return answer
}문제 : 하샤드 수
사용 메서드 : toString(), split(), reduce()
풀이 과정 :
받아온 숫자를 자릿수 별로 계산을 해주어야 한다.
숫자를 문자열로 변경한다.
변경된 문자열을 자릿수 별로 배열화 한다.
배열을 모두 더해준다.
배열 안의 인자들은 문자열이므로 형변환을 시켜준 뒤 덧셈을 진행한다.
초기 값과 덧셈 값의 나머지 판단 후 true, false를 보여준다.
function solution(x) {
let temp = x.toString().split('')
let sum = temp.reduce((acc,cur)=>{
return +acc + +cur
})
return x%sum===0 ;
}문제 : 콜라츠 추측
풀이 과정 :
결과 값으로 나타낼 count를 입력.
while 문을 통해 조건이 만족 될때까지 무한 반복문을 돌려준다.
총 500번만 반복하면 되므로
count !== 500숫자가 1이면 그만 둬야하므로
num !== 1
제공된 조건 대로 짝수일 때와 홀수일 때의 조건을 작성해준다.
제공된 num 값에 따라 count 또는 -1을 반환해준다.
function solution(num) {
let count = 0;
while(num !== 1 && count !== 500){
if(num%2===0){
num = num/2
}else{
num = num * 3 + 1
}
count++
}
return num===1 ? count : -1;
}문제 : 수박수박수박수박수박수?
사용 메서드 : repeat()
풀이 과정 :
‘수박’ 단어 한 개는 n이 짝수일 때 나올 수 있는 단어.
repeat() 메서드를 사용해 n/2만큼 ‘수박’ 단어를 반복해주자.
n이 홀수일 때 ‘수’ 를 추가 적으로 붙여주자.
삼항연산자를 사용하자.
function solution (n){
return '수박'.repeat(n/2) + (n %2 === 1 ? '수' : '')
}Share article