난이도 : Level. 1
언어 : Javascript
출제 내역 : 연습문제
정수 제곱근 판별
- 주어진 수가 제곱근인지 판별해서 값을 구하자
function solution(n) {
var answer = 0;
let sqrtNum = parseInt(Math.sqrt(n))
if (sqrtNum*sqrtNum === n) {
answer = (sqrtNum+1)*(sqrtNum+1)
} else {
answer = -1
}
return answer;
}
Math.sqrt
함수를 이용해서 루트 값을 구해준 뒤,
그 값을 정수값으로 만들어서 그 값을 제곱 했을때, 들어온 값과 같다면
조건에 맞게 결과를 내줬습니다.
점수 내림차순으로 배치하기
- 어떤 수를 내림차순으로 재정렬하기
function solution(n) {
var answer = String(n);
let arr = [];
for (let i = 0; i<answer.length; i++) {
arr.push(answer.slice(i,i+1))
}
arr = arr.sort((a,b) => b-a).join('')
answer = Number(arr)
return answer;
}
주어진 숫자를 문자열로 변경한 뒤,
하나씩 배열에 따로 저장하고, 내림차순으로 정렬한 뒤
다시 합쳐서 숫자로 변환하는 과정으로 문제를 해결했습니다.
자연수 뒤집어서 배열로 만들기
- 주어진 수의 자릿수를 뒤집어서 새로운 배열로 만들기
function solution(n) {
let result = String(n);
let arr = [];
for (let i = result.length-1; i>=0; i--) {
arr.push(Number(result[i]))
}
return arr
}
들어온 수를 문자로 변경한 뒤, 반복문을 이용합니다.
역순으로 배열에 넣을때 숫자로 변경해서 넣어줍니다.
자릿수 더하기
- 주어진 숫자의 자릿수를 더한 값을 반환
function solution(n) {
let change = String(n).split('');
let answer = 0
for (let i = 0; i<change.length; i++) {
answer += Number(change[i])
}
return answer
}
들어온 숫자를 문자로 바꾸고 split
함수를 이용해 배열로 바꿉니다.
그 후, 각 인덱스의 값을 숫자로 바꿔서 더해주고 값을 냅니다.
이상한 문자 만들기
- 문자열 단어에서 짝수번째는 대문자로, 홀수번째는 소문자로 만들기
function solution(s) {
let newArr = s.split(' ')
let answer = []
for (let i = 0; i<newArr.length; i++) {
for (let l = 0; l<newArr[i].length; l++) {
if (l%2 === 0) {
answer.push(newArr[i][l].toUpperCase())
} else {
answer.push(newArr[i][l].toLowerCase())
}
}
if (i === newArr.length-1) {
break;
} else {
answer.push(' ')
}
}
return answer = answer.join('')
}
들어온 문자열을 단어 단위로 먼저 나눠주고,
반복문 2개를 통해 각 단어의 위치를 확인해 조건에 맞게
대문자와 소문자로 변환을 해준뒤, 단어를 구별하는 공백을 넣어줍니다.
그 후, 맨 마지막 단어 뒤에는 공백이 안 생기도록 조건을 걸어준 뒤,
모든 배열 값을 합쳐줘서 반환합니다