본문 바로가기

반응형

Algorithm

(62)
[JS로 코테 준비하기] 11. 프로그래머스 - 안전지대 (feat. 2차원 배열 탐색 관련) https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr JS로 2차원 배열을 다루는 데 필요한 기본적인 꿀팁들을 많이 얻어갈 수 있는 문제였다. 1. 2차원 배열의 깊은 복사 2차원 배열을 탐색하는 문제에서 주어진 기존 배열은 그대로 두고, 새로운 배열을 만들어야 하는 경우가 있다. 이때 새로운 배열이 기존 배열과 엮기지 않도록! 완전히 독립적 이도록! 깊은 복사를 해야한다. 일반적으로 1차원 배열의 깊은 복사는 slice()를 활용한다. const..
[JS로 코테 준비하기] 10. 프로그래머스 - 이진수 더하기 (feat. 2진수 <-> 10진수) https://school.programmers.co.kr/learn/courses/30/lessons/120885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그동안 parseInt는 정수로의 변환을 위해, toString은 문자열로의 변환을 위해서만 사용했던 것이 대부분이었다. 하지만 이 문제를 통해 위 메서드들의 새로운 면을 알게 되었다. 1. parseInt() 정수를 반환 ← 주로 사용하던 기능 문자열을 파싱 하여 특정 진수의 정수를 반환 (= 특정 진수를 10진수로) const str = "10"; console.log(parseInt(str..
[JS로 코테 준비하기] 9. 프로그래머스 - 2차원 바꾸기 (feat. splice) https://school.programmers.co.kr/learn/courses/30/lessons/120842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. splice splice는 배열의 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경함 splice의 인자: 배열의 변경을 시작할 인덱스(start), 배열에서 제거할 요소의 수(deleteCount), 배열에 추가할 요소(item) spice의 반환값: 제거한 요소를 담은 배열 2. start만 넘겨준 경우 start부터 마지막 요소를 제거 const arr = [1, 2..
[JS로 코테 준비하기] 8. 프로그래머스 - 배열 회전시키기 (feat. shift, unshift) https://school.programmers.co.kr/learn/courses/30/lessons/120844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열 앞뒤에 요소를 넣고 뺄 수 있는, Deque의 기본 기능을 지원하는 JS 메소드를 알아보자. 1. shift() pop_front()와 같은 역할 배열의 첫 번째 요소를 제거하고, 제거된 요소를 반환 const arr = [1, 2, 3]; const e = arr.shift(); console.log(e); // 1 console.log(arr); // [2, 3] 2. unshift()..
[JS로 코테 준비하기] 7. 프로그래머스 - 약수 구하기 (feat. 1부터 n까지 배열) https://school.programmers.co.kr/learn/courses/30/lessons/120897 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1부터 n까지 배열 만들기 숫자 n이 주어졌을 때, 1부터 n까지 탐색이 필요한 경우 for문을 대신하는 방법들 for(let i = 0; i i + 1)); Array.from({length: n}, (_, i) => i + 1); [...Array(n).keys()].map(i => i + 1); [...Array(n+1).keys()].slice(1); 참고) i부터 j [i, i+1, ...
[JS로 코테 준비하기] 6. 프로그래머스 - 순서쌍의 개수 (feat. 시간복잡도 제한) https://school.programmers.co.kr/learn/courses/30/lessons/120836 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 간단하다. 주어진 숫자의 약수의 개수를 구하는 것! 다만, JS의 시간복잡도 제한에 대한 고민이 드는 문제였다. 시간복잡도에 따른 입력의 크기 일반적으로 C++은 O(n)의 시간복잡도를 처리할 때, 입력의 크기를 1억으로 제한한다. 이를 넘어가면 시간초과가 나오도록 설계되어 있다. Javascript의 입력 제한은? 위 문제를 통해 테스트해보자. 입력 제한은 1
[JS로 코테 준비하기] 5. 프로그래머스 - 문자열 뒤집기(feat. 문자열 <-> 배열) https://school.programmers.co.kr/learn/courses/30/lessons/120822 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr String to Array 1. str.split('') function solution(my_string) { const strToArr = my_string.split(''); return strToArr.reverse().join(''); } 2. [...str] function solution(my_string) { const strToArr = [...my_string]; return..
[JS로 코테 준비하기] 4. 프로그래머스 - 제곱수 판별하기(feat. 정수 판단하기) https://school.programmers.co.kr/learn/courses/30/lessons/120909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 숫자가 정수인지 실수인지 판단하는 방법 1. Number.isInteger() 가장 직관적이고 보기 좋은 코드라고 생각 function solution(n) { const sqrt = Math.sqrt(n); return Number.isInteger(sqrt) ? 1 : 2; } 2. 나머지 연산자 (% 1) 정수를 1로 나누었을 때 나머지가 항상 0인 것을 이용 function solutio..

반응형