본문 바로가기

반응형

Algorithm/Javascript로 코테 준비하기

(18)
[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..
[JS로 코테 준비하기] 3. 프로그래머스 - 배열의 평균값(feat. reduce) https://school.programmers.co.kr/learn/courses/30/lessons/120817 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr JS Array - reduce 1. reduce reduce는 배열을 순회하며 각 요소에 대해 주어진 함수를 실행해 하나의 값을 반환함 reduce의 인자: 누산기(acc), 현재 값(cur), 현재 인덱스(idx), 원본 배열(src) 활용 예시) const arr = [1, 2, 3, 4]; const init = 0; const sum = (a, b) => a + b; const sumA..
[JS로 코테 준비하기] 2. 프로그래머스 - 각도기(feat. JS 분기 처리) https://school.programmers.co.kr/learn/courses/30/lessons/120829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Javascript 분기 처리 방법 분기 처리를 할 때는 조건의 순서가 중요하다. 어떤 조건을 먼저 쓰느냐에 따라 결과가 달라지기 때문이다. (+ 깔끔한 코드 작성은 덤) 1. if - else 가장 직관적인 방법 function solution(angle) { if(angle < 90) return 1; else if(angle == 90) return 2; else if(angle < 180..

반응형