본문 바로가기

자바스크립트

(7)
[BOJ / Node.js] 1715. 카드 정렬하기 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶..
[Javascript] 호이스팅(Hoisting) 호이스팅을 알아보기 전 숙지해야할 변수의 생성 단계 변수는 3가지 단계를 걸처 생성됩니다. 선언 단계 초기화 단계 할당 단계 var의 경우 선언 단계와 초기화 단계가 동시에 진행이 됩니다. 즉, 자바스크립트 내부적으로 실행 컨텍스트의 변수 객체에 변수를 등록하는 동시에 메모리를 undefined로 만듭니다. let과 const는 선언 단계와 초기화 단계가 분리되어 진행됩니다. 실행 컨텍스트의 변수 객체에 변수를 등록했지만, 메모리에 할당하지 않아 접근할 수 없고 Reference Error가 발생합니다. 이때 스코프의 시작과 초기화 시작 사이의 구간이 발생하게 되는데 이것을 TDZ(Temporal Dead Zone)라고 합니다. 호이스팅(Hoisting)? JavaScript에서 호이스팅(hoisting..
[BOJ / Node.js] 10830 행렬 제곱 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. 입력 첫째 줄에 행렬의 크기 N과 B가 주어진다. (2 ≤ N ≤ 5, 1 ≤ B ≤ 100,000,000,000) 둘째 줄부터 N개의 줄에 행렬의 각 원소가 주어진다. 행렬의 각 원소는 1,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄부터 N개의 줄에 걸쳐 행렬 A를 B제곱한 결과를 ..
[Programmers/JS] 소수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 풀이 에라토스테네스의 체를 그대로 구현해야 하는 문제. (아래 링크 참조) (https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4) 자기 자신(n)도 포함해야 하므로 index를 맞춰주기 위해 n+1의 boolean 배열을 선언해 주고, 값..
[Programmers/JS] 약수의 개수와 덧셈 https://school.programmers.co.kr/learn/courses/30/lessons/77884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 풀이 left에서 right까지의 수를 약수의 개수가 홀수, 짝수이냐에 따라서 answer에 연산을 하는 문제. 첫번째 반복문에서는 i가 left에서 right까지 순회할 수 있도록 설정한다. count 변수는 약수의 갯수를 셀 목적으로 선언하였고, 두 번째 반복문에서 i가 j에 대해서 나누어 떨어질 때 약수이므로 count를 1씩 더해준다. 두 번째 반복문이 끝나면 count의 홀,짝..
[Programmers/JS] 문자열 내 마음대로 정렬하기 https://school.programmers.co.kr/learn/courses/30/lessons/12915?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 풀이 strings배열에 sort함수를 적용하여 정렬을 시켜줌. n번째 인덱스의 값이 같다면 사전 순으로 정렬해야 하기 때문에 a[n] === b[n] 조건을 만들어 매개변수 a,b를 비교하는 조건문을 하나 추가하였다. compareFunction의 반환값에 따라 어떻게 정렬될까? compareFunction이 a, b 두 개의 값을 매개변수로 받을 ..
[Programmers/JS] 3진법 뒤집기 https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 풀이 받은 자연수 n을 뒤집어 주기 위해 문자열 -> 배열로 만들어 준 후 reverse() 함수를 사용. join("")을 통해 다시 배열 -> 문자열로 변환 toString(Number) 함수를 이용해 10진법-> 3진법 parseInt 함수를 통해 3진법->10진법 변환 2. 제출 코드 function solution(n) { return (parseInt([...n.toStrin..

728x90