목록LV2 (37)
기록방
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 비내림차순 수열의 부분 수열 중 합이 k가 되는 가장 짧은 부분 수열의 시작과 끝 인덱스를 반환한다. 같은 길이가 여러개 나오는 경우 먼저 나온 부분 수열을 사용한다. 🔸 문제 풀이 🔸 인덱스를 이동하며 부분 수열의 합을 계산하는 문제이므로, 투포인터로 풀이한다. 두 인덱스 left와 right를 지정하고, k보다 작으면 right + 1, k보다 크다면 left + 1로 이동한다. 인덱스가 변할 때 부분 수열의 합도 변경하며 계산한다. 부분 수열의 합이 k와 같아진다면, 길이가..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 x축에 평행한 미사일들의 시작과 끝 인덱스가 주어진다. 요격 하기 위해서 미사일들의 범위에 해당하는 곳을 선택해야하며 끝 인덱스에 걸칠 수는 없다. 요격에 필요한 미사일의 최소 수를 구한다. 🔸 문제 풀이 🔸 최소한의 요격 미사일 개수로 최대한 많은 수의 폭격 미사일을 요격해야 하므로 그리디 문제로 볼 수 있다. 포격 미사일의 범위가 겹치는 인덱스를 빠르게 알기 위해 끝 인덱스로 오름차순 정렬한다. 문제에서의 제한 사항으로 실수 좌표도 가능하며 끝 인덱스에 겹치면 안된다. 이전 ..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 오픈채팅방에서 입장, 퇴장, 닉네임 변경 세 가지 기능의 기록이 주어진다. 사용자는 유저 아이디로 구분되는데, 입장 때의 닉네임이나 닉네임 변경 시 닉네임이 변경 될 수 있다. 사용자가 들어오고 나간 기록을 문자열 배열로 반환하는데, 최종 변경 된 닉네임으로 나타내야한다. 🔸 문제 풀이 🔸 사용자 아이디에 따른 닉네임을 맵으로 기록하고, 최종 반환 전 문자열로 변환한다. 🔸 코드 🔸 import java.util.Map; import java.util.HashMap; import..