목록CodingTest/Java (342)
기록방
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 오픈채팅방에서 입장, 퇴장, 닉네임 변경 세 가지 기능의 기록이 주어진다. 사용자는 유저 아이디로 구분되는데, 입장 때의 닉네임이나 닉네임 변경 시 닉네임이 변경 될 수 있다. 사용자가 들어오고 나간 기록을 문자열 배열로 반환하는데, 최종 변경 된 닉네임으로 나타내야한다. 🔸 문제 풀이 🔸 사용자 아이디에 따른 닉네임을 맵으로 기록하고, 최종 반환 전 문자열로 변환한다. 🔸 코드 🔸 import java.util.Map; import java.util.HashMap; import..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 현재 인덱스의 수보다 뒤에있는 수 중에서 현재 수보다 크면서 가장 가까운 수를 찾는다. 그런 수가 없다면 -1을 저장한다. 🔸 문제 풀이 🔸 현재 수보다 큰 '가장 가까운 수'는 스택을 이용해 찾을 수 있다. 뒤에서부터 앞으로 진행해서, 현재 수보다 큰 값이 나올 때 까지 스택에서 수를 빼낸다. 만약 없다면 -1을 저장하고 현재 값을 스택에 넣고 다음을 계산한다. 현재 수보다 작은 수를 스택에서 빼도 되는 이유는 어차피 현재 수를 스택에 넣기 때문에, 이 다음 계산에서 생략해도 ..