[자바스크립트/javascript] 프로그래머스 : 코딩테스트 입문 21~25문제

정답률이 실시간으로 반영되어서인지 문제 순서가 실시간으로 바뀐다...

 

21. 점의 위치 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120841?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(dot) {
    return dot[0] > 0 && dot[1] > 0 ? 1 : dot[0] < 0 && dot[1] > 0 ? 2 : dot[0] < 0 && dot[1] < 0 ? 3 : 4
}

다른 사람 풀이

function solution(dot) {
    return dot[0] > 0 ? dot[1] > 0 ? 1 : 4 : dot[1] > 0 ? 2 : 3;
}

이런 식으로 풀 수도 있구나.. 훨씬 코드가 짧아진다

dot[0]이 0보다 크면 -> dot[1]이 0보다 크면 1 아니면 4, 둘 다 아닐 때 dot[1]이 0보다 크면 2 아니면 3

 

 

 

22. 배열 자르기

https://school.programmers.co.kr/learn/courses/30/lessons/120833?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(numbers, num1, num2) {
    return numbers.slice(num1,num2+1);
}

파이썬에서는 [num1:num2+1]를 쓰면 되지만 자바스크립트에서는 이와 같은 기능이 slice이다

splice를 이용할 수도 있는데,

slice는 괄호 안의 범위를 잘라서 반환해 준다면 splice는 괄호 안의 범위를 삭제해 준다

 

numbers = [1,2,3,4,5,6,7,8,9,10] 일 때

numbers.splice(1,3) 을 한다면

[1,5,6,7,8,9,10]이 반환될 것이다.

인덱스 1의 자리부터 시작해서 3개를 삭제한다는 소리이다.

numbers.splice(1,3,0)처럼 세 번째 자리에 숫자를 하나 더 추가하면

[1,0,5,6,7,8,9,10]이 될 것이다. 삭제된 자리에 세 번째 자리에 입력했던 값이 추가된다.

만약 return numbers.splice(1,3) 이런 식으로 바로 splice값을 반환하면 numbers배열에서 삭제될 [2,3,4]가 반환된다.

 

위 문제를 splice를 이용해서 풀면,

function solution(numbers, num1, num2) {
    return numbers.splice(num1,num2-num1+1)
}

이렇게 된다.

 

 

 

23. 피자 나눠먹기(1)

https://school.programmers.co.kr/learn/courses/30/lessons/120814?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(n) {
    return Math.ceil(n/7)
}

 

 

24. 삼각형의 완성조건(1)

https://school.programmers.co.kr/learn/courses/30/lessons/120889?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(sides) {
    sides.sort((a,b)=>a-b)
    return sides[0] + sides[1] > sides[2] ? 1 : 2
}

 

 

 

25. 아이스 아메리카노

https://school.programmers.co.kr/learn/courses/30/lessons/120819

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(money) {
    return [parseInt(money/5500),money%5500]
}

parseInt가 아니가 Math.floor()~~()를 써도 된다.

comment