난이도 : Level. 1
언어 : Javascript
출제 내역 : 연습문제
두 정수 사이의 합
- 주어진 숫자 사이의 합을 모두 더해 구하라
function solution(a, b) {
let sum = 0;
const counting = Math.abs(a-b)
if (counting === 0) {
return a
} else if (a>b) {
for (let i = b; i<=a; i++) {
sum = sum + i
}
return sum
} else {
for (let i = a; i<=b; i++) {
sum = sum + i
}
return sum
}
}
경우의 수를 다 대입해서 구해주었습니다.
return (a+b)*(Math.abs(b-a)+1)/2;
미친 풀이법이 있기에 가져와봤습니다...
어마어마하군요
나누어 떨어지는 숫자 배열
- 숫자 배열에서 나누어 떨어지는 숫자로만 새 배열 만들기
function solution(arr, divisor) {
let newArr = arr.filter(a => a%divisor === 0).sort((a,b) => a-b)
if (newArr.length === 0) {
return [-1]
} else {
return newArr
}
}
필터를 통해서 나누어 떨어지는 수만 걸러주고, 오름차순으로 정렬했습니다.
조건에 맞는 수가 없다면 -1을 도출하도록 했습니다.
같은 숫자는 싫어
- 문자열을 내림차순으로 정렬
function solution(arr) {
var answer = [];
let num = -1;
for (let i = 0; i<arr.length; i++) {
if (num !== arr[i]) {
answer.push(arr[i]);
num = arr[i];
}
}
return answer;
}
배열에서 중복되는 숫자만 배열에 넣을 수 있도록 해줘서 해결했습니다.
가운데 글자 가져오기
- 문자열의 가운데 글자 가져오기
function solution(s) {
var answer = '';
const remainder = s.length%2
const middleNum = parseInt(s.length/2)
if (remainder === 1) {
answer = s[middleNum]
} else {
answer = s.slice(middleNum-1,middleNum+1)
}
return answer;
}
주어진 문자열의 길이가 짝수인지 아닌지 판단하고,
해당 조건에 따라서 가운데 글자를 가져왔습니다.
2016년
- 2016년의 어떤 날이 무슨 요일인지 도출
function solution(a, b) {
const date = '2016-'+a+'-'+b;
const week = ['SUN','MON','TUE','WED','THU','FRI','SAT']
let today = new Date(date).getDay()
return week[today];
}
2016년의 날짜를 만들고 해당 날짜에서 getday를 이용해 요일 숫자를 내오고
week 배열에서 인덱스를 찾아 적용합니다.