2025 프로그래머스 코드챌린지 2차 예선 - 택배 상자 꺼내기 - JAVA
2025. 3. 4. 13:41ㆍ백준 및 프로그래머스/프로그래머스 LV 1
문제 설명



제한사항 및 테스트 케이스 구성 안내

입출력 예


문제 설명
1.상자를 순서대로 쌓아 나갑니다. 단 1~N까지의 번호의 상자를 쌓아야 하기에 N 이후로는 쌓지 않습니다.
2.상자를 쌓다 보면 홀수 번째 줄에서는 정 방향으로 흐르지만, 짝 수 번째 줄에서는 반대 방향으로 흐릅니다.
3.상자를 쌓고 나면 내가 찾으려고 하는 상자의 위치가 어디인지 찾아줍니다.
4.내가 찾으려고 하는 상자의 위치부터 어느 정도의 깊이까지 쌓여있는지 파악합니다.
5.파악한 후 얼마나 걷어내야 원하는 상자를 찾을 수 있는지 출력해줍니다.
전체 코드
import java.util.*;
class Solution {
public int solution(int n, int w, int num) {
//총 상자 갯수 변수
int answer = 0;
int[][] box = new int[100][w];
// n을 넘지 않기 위한 count
// 각 위치에 맞게 box에 저장.
int count = 1;
//num 위치를 찾기 위한 x,y변수
int x = -1 ;
int y = -1 ;
//박스 생성
createbox(count,n,box,w);
//찾으려고 하는 상자가 어디 위치에 있는 지 파악.
for(int i = 0; i<100; i++){
for(int j = 0; j<w; j++){
if(box[i][j] == num){
x = i;
y = j;
}
}
}
//상자 위치를 파악 후 0이 나오면 상자가 없다는 의미니 0이 나올 때 까지 탐색
//0이 나오기 전까지 answer++ 해주면서 상자를 얼마나 탐색했는 지 확인
for(int i = x; i<100; i++){
if(box[i][y] == 0){
break;
}else{
answer++;
}
}
return answer;
}
//박스 생성
static void createbox(int count,int n,int[][] box,int w){
while (count<=n){
for(int i = 0; i<100; i++){
if(i%2 == 0){
for(int j = 0; j<w; j++){
box[i][j] = count++;
if(count > n){
return;
}
}
}else{
for(int j = w-1; j>=0; j--){
box[i][j] = count++;
if(count > n){
return;
}
}
}
}
}
}
}'백준 및 프로그래머스 > 프로그래머스 LV 1' 카테고리의 다른 글
| PCCP 기출문제[PCCP 기출문제] 1번 / 동영상 재생기 - JAVA (0) | 2025.03.05 |
|---|---|
| 2022 KAKAO BLIND RECRUITMENT - 신고 결과 받기 - JAVA (1) | 2025.03.03 |
| [PCCP 기출문제] 1번 / 붕대 감기 - JAVA (0) | 2025.03.02 |
| [PCCE 기출문제] 10번 / 공원 - JAVA (0) | 2025.03.02 |
| 2025 프로그래머스 코드챌린지 1차 예선 - 유연근무제 -JAVA (1) | 2025.02.27 |