https://programmers.co.kr/learn/courses/30/lessons/42748
단순하게 반복문과 push를 사용하면 해결가능하다.
function solution(array, commands) {
var answer = [];
for (let i = 0; i < commands.length; i++) {
let arrSliced = array.slice(commands[i][0]-1, commands[i][1]).sort((a, b) => a - b)
console.log(arrSliced)
answer.push(arrSliced[commands[i][2] - 1])
}
return answer;
}
https://programmers.co.kr/learn/courses/30/lessons/12906
나는 단순하게 반복문으로 풀었는데 다른사람의 풀이 중 1줄로 끝낸게 있어서 매우 놀랐다.
function solution(arr)
{
var answer = [];
let arg = arr[0];
answer.push(arg);
for (let i = 1; i < arr.length; i++) {
if (arr[i] === arg) {
continue
} else {
arg = arr[i]
answer.push(arg)
}
}
return answer;
}
아래처럼 간단하게 한줄로 끝낼수 있다니;;;
function solution(arr)
{
return arr.filter((val, index) => val != arr[index+1])
}
https://programmers.co.kr/learn/courses/30/lessons/12916
function solution(s){
let pCount = 0;
let yCount = 0;
for (let i = 0; i < s.length; i++) {
if (s[i] === 'p' || s[i] === 'P') {
pCount += 1
} else if (s[i] === 'y' || s[i] === 'Y') {
yCount += 1
}
}
var answer = (pCount === yCount) ? true : false
이번에도 반복문으로 풀었는데 아래 처럼 한줄로 끝낼수 있는 방법이 있었다.
function solution(s){
return s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length
}
https://programmers.co.kr/learn/courses/30/lessons/12947
이번에도 기본적인 반복문으로 풀었다.
그런데 자바스크립트의 연산자 속성과 reduce를 사용하면 한줄로 간편하게 풀이가 가능했다.
function solution(x) {
return !(x % (x + "").split("").reduce((a, b) => +a + +b));
}
//변수앞의 + 연산자는 unary + 연산자로 형변환 역할
//x + "" 부분또한 문자열로 형변환 위해 사용
'코딩테스트' 카테고리의 다른 글
(JS) 프로그래머스 - 완주하지 못한 선수 (0) | 2021.05.25 |
---|---|
개발공부 기록 시작 (0) | 2020.11.02 |
댓글