본문 바로가기

코딩일기

알고리즘 코트카타 - 16 ~ 20 (자바스크립트)

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

 

프로그래머스

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

programmers.co.kr

1. 문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

function solution(x, n) {
    let answer = [];
    
    for (let i = 1; i <= n; i++) {
        answer.push(x*i)
    }
    
    return answer;
}

 

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

 

프로그래머스

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

programmers.co.kr

2. 문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

function solution(n) {
    let answer = [];
    let str_n = n.toString();
    
    for (let i = str_n.length; i >= 1; i--) {
        answer.push(parseInt(str_n.slice(i-1, i)))
    }
    return answer;
}

 

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

 

프로그래머스

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

programmers.co.kr

3. 문제 설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

제한 조건
s의 길이는 1 이상 5이하입니다.
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
s는 부호와 숫자로만 이루어져있습니다.
s는 "0"으로 시작하지 않습니다.

function solution(s) {
    let answer = 0;
    
    answer = parseInt(s)
    return answer;
}

 

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

 

프로그래머스

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

programmers.co.kr

4. 문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

function solution(n) {
    let answer = 0;
    if (n**0.5 == parseInt(n**0.5)) {
        answer = ((n**0.5) + 1) ** 2
    } else {
        answer = -1
    }
    
    return answer;
}

 

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

 

프로그래머스

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

programmers.co.kr

5. 문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

function solution(n) {
    let list_n = Array.from(n.toString());
    list_n.sort();
    list_n.reverse();
    let answer = list_n.join('');
    answer = parseInt(answer)
    
    return answer;
}

 

 

새로 배운 것

 - .push()를 처음 사용해보았다. 파이썬의 .append()와 비슷한 함수인것같다.

 - Array.from(), 문자열을 리스트로 반환한다. 파이썬의 list

 - sort(), 리스트를 정렬한다. 파이썬의 sort()

 - .join() 리스트를 문자열로 합쳐준다. 파이썬의 .join()과 같지만 순서가 서로 반대이다. 자바스크립트에서는 리스트.join('중간문자'), 파이썬에서는 '중간문자'.join(리스트)