난이도: Lv. 2 정답률: 58% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 생성된 2차원 배열에서 열별 최댓값을 추출하여 1차원 배열을 생성한다. 2. 생성한 1차원 배열과 다음 행에 대해 1.의 과정을 수행한다. 모든 행에 대해 수행했다면 마지막 1차원 배열에서의 최댓값이 이 문제의 정답이 된다. 참고로 1차원 배열에는 각 행의 각 열까지 오는 경로 중 최댓값만 담기게 된다. 코드 function solution..
난이도: Lv. 2 정답률: 58% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 정답 배열을 (주어진 배열 prices의 길이 - 1) 부터 0까지 1씩 감소하는 원소들로 초기화한다. 2. 스택에 삽입할 데이터는 [가격, 인덱스] 형태의 배열이다. 3. 스택 꼭대기에 위치한 원소의 가격이 현재 스택에 삽입할 원소의 가격보다 크면 가격이 떨어졌음을 의미한다. 이 경우 스택을 pop() 하여 몇 초 뒤에 가격이 떨어졌는지 ..
난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 어느 좌표에서 어느 좌표로 이동했는지를 저장할 Set을 선언한다. 2. 이전 좌표를 저장하는 배열과 현재 좌표를 저장하는 배열을 모두 [0, 0]으로 초기화한다. 3. 이동할 방향의 좌표가 좌표평면의 경계를 넘어가지 않는다면 이동한다. 이동했을 경우 이전좌표와 이동한 현재좌표 순으로 문자열로 바꿔 Set에 추가하고, 현재좌표와 이전좌표 순으로 문자열로 바꾼..
난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 정답 배열의 모든 원소를 -1로 초기화한다. 2. 스택에 [numbers의 원소, 원소의 인덱스] 배열을 넣는다. 3. 2.를 수행하기 전에 스택 안에 있는 원소들이 새로 넣을 원소보다 작으면 스택을 pop() 하여 꺼낸 원소의 원래 인덱스를 확인하고 정답 배열의 해당 인덱스를 새로 넣을 원소의 값으로 바꾼다. 새로 넣을 원소가 스택에 있는 원소보다 클 ..
난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 구조체에 차량 번호를 key로 하고, value는 입차/출차 시간을 저장하는 배열로 한다. 2. value의 길이가 홀수이면 입차된 후 출차된 내역이 없는 것이므로 value 배열에 '23:59'를 push()한다. 3. 각 차량별 누적 시간을 계산하여 요금을 계산하고, [차량번호, 요금] 배열을 정답 배열에 push() 한다. 4. 3.의 배열을 차량 번..
난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 힙 구현 insert 구현 배열의 맨 뒤에 삽입할 데이터를 push()하고, 업 버블링을 한다. 삽인한 데이터가 부모 노드의 값보다 클 때까지 반복한다. delete 구현 배열의 맨 앞에 있는 값을 따로 저장하고 delete 함수의 마지막에서 반환한다. 배열의 맨 앞 값을 저장한 후 배열의 맨 뒷 값을 pop()하여 배열의 맨 앞 원소에 덮어씌우고, 다운 버블링..
난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 시작 위치 배열을 큐에 넣는다. 시작 위치 배열은 [행 번호, 열 번호, 지나온 칸의 개수] 로 이루어져 있다. 2. 큐에서 배열을 하나 뺴서 현재 위치가 목적지인지 확인한다. 3-1. 목적지면 시작 위치부터 목적지까지 몇 칸을 지나왔는지 반환한다. 3-2. 목적지가 아니라면 위아래, 양 옆으로 갈 수 있는지 확인하고 갈 수 있다면 그 위치의 배열을 큐에 삽..
난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 사전에 수록되어 있는 단어의 최대 길이가 5이므로 문자열의 길이가 5가 될 때까지 재귀함수를 수행한다., 2. 재귀함수 수행 중 word와 일치하는 단어가 나오면 몇 번째 단어인지 answer에 저장한다. 코드 function solution(word) { var answer = 0; const vowel = ['A', 'E', 'I', 'O', 'U'];..
난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 튜브가 마지막으로 말할 숫자의 인덱스는 p - 1 + m * (t - 1) 이므로 p + m * (t - 1) 길이만큼의 문자열을 구한다. 2. 1.에서 구한 문자열 중 튜브가 말해야 하는 숫자만 정답 문자열에 넣는다. 코드 function solution(n, t, m, p) { var answer = ''; let numString = ''; const..