목록PGM (94)
기록방
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 비내림차순 수열의 부분 수열 중 합이 k가 되는 가장 짧은 부분 수열의 시작과 끝 인덱스를 반환한다. 같은 길이가 여러개 나오는 경우 먼저 나온 부분 수열을 사용한다. 🔸 문제 풀이 🔸 인덱스를 이동하며 부분 수열의 합을 계산하는 문제이므로, 투포인터로 풀이한다. 두 인덱스 left와 right를 지정하고, k보다 작으면 right + 1, k보다 크다면 left + 1로 이동한다. 인덱스가 변할 때 부분 수열의 합도 변경하며 계산한다. 부분 수열의 합이 k와 같아진다면, 길이가..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 x축에 평행한 미사일들의 시작과 끝 인덱스가 주어진다. 요격 하기 위해서 미사일들의 범위에 해당하는 곳을 선택해야하며 끝 인덱스에 걸칠 수는 없다. 요격에 필요한 미사일의 최소 수를 구한다. 🔸 문제 풀이 🔸 최소한의 요격 미사일 개수로 최대한 많은 수의 폭격 미사일을 요격해야 하므로 그리디 문제로 볼 수 있다. 포격 미사일의 범위가 겹치는 인덱스를 빠르게 알기 위해 끝 인덱스로 오름차순 정렬한다. 문제에서의 제한 사항으로 실수 좌표도 가능하며 끝 인덱스에 겹치면 안된다. 이전 ..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 정수 x, y, n이 입력된다. x를 3가지 연산 (+n, x2, x3) 으로 y를 만드는 최소 연산 횟수를 반환한다. y를만들 수 없으면 -1을 반환한다. 🔸 문제 풀이 🔸 BFS와 DP로 풀이할 수 있다. BFS는 각 인덱스를 처음 방문했으면 다음 3가지 연산을 수행해서 y를 찾아가는데, y를 초과하거나 이미 방문 했으면 제외한다. DP는 x부터 y까지 인덱스를 늘려가며 계산하는데, 처음 방문이면 현재 값을 넣고 이미 값이 있으면 더 작은 값을 선택하는 방식으로 y를 만들어 ..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 n x m 크기의 땅에 석유 덩어리들이 있다. 어느 지점에서 시추해야 가장 많은 석유를 시추하는지 구한다. 시추는 가장 위에서 수직으로 하는데, 시추기가 지나가는 석유 덩이리를 모두 시추할 수 있다. 🔸 문제 풀이 🔸 석유 덩어리를 처음 발견했을때 다음과 같이 처리한다. 석유 덩어리 번호를 붙인다. 해당 덩어리의 크기를 탐색해 파악하고, 번호에 맞게 크기를 저장해둔다. 마지막에 모든 지점에서 시추해보며, 시추 되는 석유량의 최대값을 반환한다. 🔸 코드 🔸 import java.u..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 배열에 특정 부분을 잘라 나오는 두 집합의 원소 종류 수가 같은 경우의 수를 반환한다. 🔸 문제 풀이 🔸 순서대로 한 인덱스씩 잘라보며 계산한다. 토핑을 인덱스로 구분해 카운트하고, 1이상인 원소들의 수를 카운트로 따로 계산한다. 두 집합의 원소 카운트가 같은 경우의 수를 반환한다. 🔸 코드 🔸 class Solution { public int solution(int[] topping) { // Input int[] t1 = new int[10_001]; int[] t2 = ne..