난이도: Lv. 2 정답률: 52% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 첫 행부터 마지막 행까지의 원소를 담을 2차원 배열을 생성한다. 최대 반복(라운드) 횟수를 정의한다. 삼각형 위쪽 레벨은 다음 라운드로 갈 때마다 2씩 증가한다. 삼각형 아래쪽 레벨은 다음 라운드로 갈 때마다 1씩 감소한다. 하나의 라운드마다 가장 바깥쪽에 있는 삼각형 한 바퀴를 채운다. 삼각형 위에서 왼쪽 아래로 내려가며 채운다. 이때 마지막 ..
난이도: Lv. 2 정답률: 53% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 정해진 루프 카운트 동안 총합이 큰 큐에서 작은 큐 쪽으로 원소를 넘겨주는 과정을 반복한다. 이 문제에서 중요한 것은 최대 루프 카운트를 얼마로 할 것인가이다. 최대 경우의 수는 원소가 원래 자리로 돌아오는 것으로, 그림으로 표현하면 다음과 같다. 큐2를 처음과 같은 상태로 만들지 않았음에도 끝내는 이유는 다음과 같다. 빨간 배경인 상황들을 보..
난이도: Lv. 2 정답률: 53% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 찾은 소수를 저장할 Set을 선언한다. 이 Set은 동일한 수가 정답으로 여러 번 카운팅 되는 것을 막아준다. "011"에서 11이라는 수는 두 번 발생하지만 카운팅은 한 번만 해야 하는 게 그 예시다. 숫자 하나와 numbers 문자열에서 어떤 문자가 이미 사용되었는지 표시해 주는 bitArr 배열을 파라미터로 넘겨주어 깊이 우선 탐색을 시작한..
난이도: Lv. 2 정답률: 53% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 트럭이 다리에서 내려오는 시점은 (다리에 올라간 시각 + 다리의 길이)이다. 대기 트럭이 없을 때까지 아래의 과정을 반복한다. 시간을 1 증가시키고, 다리 위에 트럭이 존재한다면 현재 시각과 트럭이 다리에서 내려오는 시각이 일치하는지 확인한다. 일치한다면 다리 위에 있는 트럭들을 나타내는 큐에서 dequeue 한다. 다리 위에 트럭이 더 올라갈 ..
난이도: Lv. 2 정답률: 53% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 (예외 상황) 주어진 배열의 모든 수가 0이면 나올 수 있는 가장 큰 수도 0이기 때문에 0을 리턴해준다. 1. 주어진 배열의 모든 원소를 문자형으로 변환한다. 2. 병합할 순서대로 정렬한다. 문자열 a, b가 있을 때 a + b와 b + a 중 더 큰 것이 앞에 오도록 조건을 설정한다. 3. 2의 과정을 통해 정렬된 배열의 모든 원소를 하나의 ..
난이도: Lv. 1 정답률: 51% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 키패드 각각의 좌표 설정 2. 각 숫자를 무슨 손으로 눌렀는지 기록한다. 2-1. 1, 4, 7번을 누를 경우 왼손으로 누른 것이므로 isLeftHand를 참으로 설정 2-2. 3, 6, 9번을 누를 경우 오른손으로 누른 것이므로 isLeftHand를 거짓으로 설정 2-3. 2, 5, 8, 0번인 경우 더 가까운 손이 어느 손인지 판별하여 ..
난이도: Lv. 2 정답률: 53% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 BFS를 사용하여 문제를 푼다. 큐에는 압축하고자 하는 특정 영역의 [시작 행, 시작 열, 마지막 행, 마지막 열]을 저장한다. 1. 큐에 압축하고자 하는 특정 영역의 배열을 push() 한다. 2. 해당하는 영역 내부에 있는 모든 수가 같은지 확인한다. 2-1. 같은 경우 정답 배열의 해당 값을 증가시킨다. 2-2. 같지 않은 경우 영역을 정사..
난이도: 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. 서브 스택의 마지막 상자 번호가 현재 실어야 하는 상자 번호보다 큰 경우 ..