본문 바로가기

반응형

Algorithm/Javascript로 코테 준비하기

(18)
[JS로 코테 준비하기] 17. 숫자 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 봤을 때는 간단해 보였는데, 시간 초과를 해결하는 데 꽤 많은 시간이 걸렸다. 다양한 풀이가 가능해서 기록해 두려고 한다! 1. 재귀 (시간 초과) 가장 먼저 떠올렸던 풀이로, 문제를 그대로 코드로 옮겼다고 볼 수 있다. x에서 y를 만드는 모든 과정을 처리하고, x를 y로 변환하는 순간 result값을 업데이트한다. function solution(x, y, n) { let result ..
[JS로 코테 준비하기] 16. 삼총사 (feat. 백트래킹, 순열과 조합) https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr JS 코드로 백트래킹을 정리해 보자. 1부터 3까지 배열이 있을 때, 이 중에서 2개를 뽑는 방식을 예시로 알아볼 것이다. const number = [1, 2, 3]; const r = 2; 1. 조합 중복 없이 r개를 뽑는 경우 (순서 상관 X) 결과: [1, 2], [1, 3], [2, 3] 탐색 중인 인덱스(cur)를 인자로 설정하고, 다음 탐색에 i + 1을 넘긴다. 현재 값 이후의 값..
[JS로 코테 준비하기] 15. 소수 찾기(feat. 에라토스테네스의 체) https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한 범위가 크지 않아 단순히 반복문을 돌리면 될 것 같았는데, 효율성 테스트가 있는 문제였다. 소수를 구하는 방식 자체는 여기에서 다루었는데, 특이한 상황을 마주해서 이를 공유하고자 한다. 방법 1. O(√N) 2부터 √N까지 나눠보기 const isPrime = (n) => { if(n < 2) return false; for(let i = 2; i*i { check[0] = check[1] ..
[JS로 코테 준비하기] 14. 시저 암호 (feat. ASCII <-> 문자) https://school.programmers.co.kr/learn/courses/30/lessons/12926 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아스키코드와 문자 간의 변환 메서드에 대해 알아보자. ASCII 코드표 가장 많이 쓰이는 영어 대소문자 부분의 아스키코드표이다. Char to ASCII charCodeAt() 인자로 인덱스를 받아, 이에 대응하는 정수(아스키코드)를 반환한다. const str = "abcdefg"; str.charCodeAt(); //97 str.charCodeAt(0); //97 str.charCodeAt(1..
[JS로 코테 준비하기] 13. 자릿수 더하기 (feat. 숫자 <-> 문자열) https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제에서는 숫자와 문자열 간의 형 변환이 필요했다. 각각을 변환하는 방식들을 알아보고, 그래서 무엇을 쓰는 것이 좋을지에 대해 알아보고자 한다. Number to String 1. num.toString() 숫자 객체를 문자열로 반환하는 내장 메서드이다. const num = 10; const str = num.toString(); //'10' const num2 = -10; const st..
[JS로 코테 준비하기] 12. 중간점검 - 프로그래머스 Lv.0 완료 개요 약 3달 전, 알고리즘 언어를 C++에서 JS로 바꿔야겠다는 마음을 먹고 [JS로 코테 준비하기]를 시작했다. 프로그래머스의 모든 문제를 풀겠다는 엄청난 의욕을 가지고 자바스크립트 뿌시기에 도전했으나.. 인턴 생활을 하면서 추가적인 시간을 내는 것이 쉽지 않았다. (핑계라면 핑계지만 11, 12월은 조금 많이 바빴다.. 😭) 하지만 언제까지 이렇게 끌고 있을 수 없었기에, 새해라는 날짜가 주는 힘을 빌려, 요 며칠 꾸준히 풀었고 드디어 프로그래머스의 level 0 문제를 다 풀었다! 딱 100문제다. 무엇을 얻었나 이 단계의 문제들은 기초적인 문제들이다. 문제를 보자마자 풀이가 생각나는 정도이며, 알고리즘이라는 말보다는 JS문법 익히기가 더 어울린다고 볼 수 있다. (물론 다른 언어로 알고리즘 풀이..
[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..

반응형