프로그래머스 | Lv.1_연습문제_Part.6_JS
3524 단어 programmersalgorithmalgorithm
난이도 : Level. 1
언어 : Javascript
출제 내역 : 연습문제
전체 풀이 코드 👈🏻 클릭시 Github로 이동
❓ Question 1
두 정수 사이의 합
- 주어진 숫자 사이의 합을 모두 더해 구하라
📝 My Solution 1
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;
미친 풀이법이 있기에 가져와봤습니다...
어마어마하군요
결과
❓ Question 2
나누어 떨어지는 숫자 배열
- 숫자 배열에서 나누어 떨어지는 숫자로만 새 배열 만들기
📝 My Solution 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을 도출하도록 했습니다.
결과
❓ Question 3
같은 숫자는 싫어
- 문자열을 내림차순으로 정렬
📝 My Solution 3
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;
}
배열에서 중복되는 숫자만 배열에 넣을 수 있도록 해줘서 해결했습니다.
결과
❓ Question 4
가운데 글자 가져오기
- 문자열의 가운데 글자 가져오기
📝 My Solution 4
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;
}
주어진 문자열의 길이가 짝수인지 아닌지 판단하고,
해당 조건에 따라서 가운데 글자를 가져왔습니다.
결과
❓ Question 5
2016년
- 2016년의 어떤 날이 무슨 요일인지 도출
📝 My Solution 5
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 배열에서 인덱스를 찾아 적용합니다.
결과
Author And Source
이 문제에 관하여(프로그래머스 | Lv.1_연습문제_Part.6_JS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sstaar91/Algorithm-Programmers-Practice1-6저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)