난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 이 문제에서는 검색이 빨라야할 것 같아서 해시 구조를 사용했다. 끝말잇기의 성공 조건은 두가지다. 1. 앞 단어의 마지막 문자와 말할 단어의 첫 문자가 일치해야한다. 2. 동일한 단어를 사용할 수 없다. 성공하면 해시맵에 (단어, 단어를 말한 사람)을 저장한다. 아무도 틀리지 않았을 경우 [0, 0]을 반환하고, 누군가 틀렸을 경우 틀린 사람의 번호와 몇 번째 차..
Express 라우터 큰 앱 하나에 라우트를 많이 넣으면 코드의 길이가 매우 길어집니다. 실제로 앱을 만들때는 그렇게 하지 않기 때문에 Express 라우터를 사용합니다. 아래와 같은 라우트를 만들어봅시다. Route Method GET /farms POST /farms GET /farms/:id GET /farms/:id/edit farms.js const express = require('express'); const router = express.Router(); router.get('/farms', (req, res) => { res.send('All Farms'); }) router.post('/farms', (req, res) => { res.send('Creating Farm'); }) ro..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 카펫은 n x m 이므로 갈색 격자 수와 노란색 격자 수를 합치면 n x m이다. 따라서 전체 격자 수의 약수 중에서 정답이 존재한다. 갈색 격자의 수는 (n x 2) + (전체격자수 / n - 2) x 2 이다. 이때 전체격자수 / n이 m이다. 전체 격자 수의 약수 중에서 잘색 격자 수를 계산했을 때 일치하는 것이 정답이다. 문제에서 카펫의 가로 길이가 세로 ..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 스택 맨 위에 있는 문자와 현재 넣을 문자가 일치하면 스택 맨 위에 있는 문자를 삭제하고 현재 문자를 넣지 않는다. 문자열의 모든 문자에 대해 수행한 후 스택에 문자가 남아있으면 결과값이 0, 남아있지 않으면 결과값 1을 반환한다. 코드 function solution(s) { if (s.length % 2 === 1) { return 0; } const stac..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 피보나치 수를 계산할 때 배열에 액세스하고 계산 결과를 1234567로 나머지 연산하여 push한다. 나머지 연산을 해서 push하는 이유는 n이 커지면 피보나치 수열의 결과값에 오버플로우가 발생하기 때문 코드 function solution(n) { const fiboArr = [0, 1]; for (let i = 2; i
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1의 개수를 카운팅 하는 방법 1. toString() 함수로 2진수 문자열로 변환 2. 1을 정규표현식을 사용하여 replace() 함수로 0 제거 3. 2의 길이 구하기 다음 큰 숫자 구하는 방법 n + 1인 자연수부터 2진수의 1의 개수를 카운팅하여 n을 2진수로 변환한 것의 1의 개수와 동일한지 확인 코드 function solution(n) { let a..
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 시작을 1, 2, ..., n 으로 하여 시작인 수부터 연속된 수들을 차례대로 더한다. 코드 function solution(n) { var answer = 0; for (let i = 1; i
난이도: Lv.2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 문자열에서 '0'을 모두 제거한다. 2. 1의 문자열 길이를 구한다. 3. 2진수 문자열로 변환한다. 4. 문자열이 '1'이 될 때까지 1 ~ 3의 과정을 반복한다. 코드 function solution(s) { var answer = []; let loopCount = 0, zeroCount = 0; while (s !== '1') { zeroCount +..