난이도: Lv. 2 정답률: 54% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 짝수인 경우 1을 더한 값이 정답 값 2. 홀수인 경우 LSB부터 0인 비트가 나올 때까지 1인 비트의 개수를 구한다. 2-1. 원래의 수에 2^(2에서 구한 개수 - 1)을 더해주면 정답 값이다. 코드 function solution(numbers) { const answer = []; for (const number of numbers)..
난이도: Lv. 2 정답률: 54% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. n만큼의 길이를 가지는 배열을 1로 초기화한다.. 2. n번째 피보나치수열을 구하기 위해 i 번째 피보나치 수를 계산하고 값을 1000000007로 나눈 나머지를 1. 에서 생성한 배열에 저장한다. 3. n번째 피보나치 수를 1000000007로 나눈 나머지를 리턴한다. 코드 function solution(n) { const fibo = ..
난이도: Lv. 2 정답률: 55% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 메인 스택을 n부터 1까지 1씩 감소하는 원소들로 초기화한다. 2. while문을 돌며 상자 번호를 확인한다. 2-1. 메인 스택의 마지막 상자가 현재 실어야 하는 상자와 동일한 경우 2-2. 서브 스택의 마지막 상자가 현재 실어야 하는 상자와 동일한 경우 2-3. 서브 스택의 마지막 상자 번호가 현재 실어야 하는 상자 번호보다 큰 경우 ..
난이도: Lv. 2 정답률: 55% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. y보다 작기 때문에 정답 가능성이 있는 원소들을 possible에 저장한다. 2. possible에 있는 모든 원소에 대해 n을 더한 것, 2를 곱한 것, 3을 곱한 것이 정답 가능성이 있는지 확인하고, 정답 가능성이 있다면 새로운 possible 배열이 될 Set()에 저장한다. 3. 2.의 반복문이 끝나면 Set을 배열로 변환하여 po..
난이도: Lv. 2 정답률: 56% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 블록이 지워진 후 위에 있는 블록을 내릴 때 열 방향으로 처리하는 것보다 행 방향으로 처리하는 것이 더 간단하다. 따라서 원본 board의 전치행렬을 생성한다. 2. 1.에서 생성한 전치행렬을 순회하며 4블록을 확인한다. 4블록임이 확인되면 삭제할 인덱스를 "행번호,열번호" 형태로 Set에 추가한다. 굳이 Set을 안 써도 될 것 같긴 하다..
난이도: Lv. 2 정답률: 56% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 각 파일명에서 head 부분과 number 부분을 객체로 저장한다. 객체로 저장할 때 origin이라는 키로 원래의 파일 이름도 저장한다. 2. 1.의 과정을 반복하며 키를 head 부분, value를 1.에서 생성한 객체들을 저장한 배열로 하는 객체를 만든다. 3. 2.에서 생성한 객체를 [key, value]의 배열로 변환한다. 4. 3..
난이도: Lv. 2 정답률: 57% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 토핑 종류당 개수가 몇 개 있는지에 대한 Map을 초기화한다. 2. 동생 롤케이크의 토핑 종류를 저장하는 Set을 선언한다. 3. 주어진 토핑 배열 topping의 맨 끝 원소부터 하나씩 2.의 Set에 담고, 1.의 Map의 해당 key의 value를 1 감소시킨다. value가 0이 되는 경우 key를 삭제한다. 4. topping 배..
난이도: Lv. 2 정답률: 57% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. uid별 닉네임을 Object에 저장한다. 2. 1.에 저장되어 있는 닉네임으로 출입 기록에 따른 메시지를 저장한다. 코드 function solution(record) { let answer = []; const uidName = {}; for (let r of record) { const splitArr = r.split(' '); if..