[프로그래머스] 택배 상자 꺼내기

2025. 5. 26. 16:52·알고리즘/구현
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/389478

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 유형

  • 구현

 

문제 레벨

  • Lev1

 

문제분석

총 n개의 박스들이 있고, 가로로 w만큼 쌓고 지그재그로 상자를 놓고, 꺼내고자 하는 상자 num을 꺼내기 위해 몇 개의 상자를 꺼내야하는지를 출력하는 문제이다.
자기 자신을 포함해서 위에 쌓여있는 박스들을 모두 counting해서 출력해주면 되고, 나는 뒤집어서 배열처럼 쌓고 원하는 상자부터 x축이 끝까지 닿을때까지의 개수를 셌다.

간단한 문제라서 금방 풀었을 것이라고 생각한다.

 

전체 코드

import java.util.*;
import java.io.*;

/**
* 꺼내려는 상자를 포함
*/
class Solution {
    public int solution(int n, int w, int num) {
        int m = 0;
        if(n % w != 0) {
            m = n / w + 1;
        } else {
            m = n / w;
        }
        
        int[][] arr = new int[m][w];
        
        int idx = 1;
        label: for(int i = 0; i < m; i++) {
            
            
            if((i & 1) == 0) {
                for(int j = 0; j < w; j++) {
                    arr[i][j] = idx++;
                    if(idx > n) break label;
                } 
            } else {
                for(int j = w - 1; j >= 0; j--) {
                    arr[i][j] = idx++;
                    if(idx > n) break label;
                }
            }
        }
        
        int col, row, count = 0;
        label: for(int i = 0; i < m; i++) {
            for(int j = 0; j < w; j++) {
                if(arr[i][j] == num) {
                    col = i;
                    row = j;
                    
                    while (col < m && arr[col][row] != 0) {
                        count++;
                        col++;
                        
                    }
                    
                    break label;
                }
            }
        }
        
        return count;
    }
}
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'알고리즘 > 구현' 카테고리의 다른 글

[2024 KAKAO INTERN] 가장 많이 받은 선물  (0) 2025.05.29
[프로그래머스] 유연근무제  (0) 2025.05.29
[프로그래머스] 봉인된 주문  (1) 2025.05.25
[백준 12100번] 2048 (Easy)  (0) 2025.05.17
[백준 16935번] 배열돌리기3  (0) 2025.05.17
'알고리즘/구현' 카테고리의 다른 글
  • [2024 KAKAO INTERN] 가장 많이 받은 선물
  • [프로그래머스] 유연근무제
  • [프로그래머스] 봉인된 주문
  • [백준 12100번] 2048 (Easy)
moongi
moongi
프로그래밍 관련 공부를 정리하는 블로그
  • moongi
    By_Me
    moongi
  • 전체
    오늘
    어제
    • 공부 (96) N
      • 알고리즘 (76) N
        • 구현 (12)
        • 이분 탐색 (1)
        • 누적합 (2)
        • 다이나믹 프로그래밍 (5)
        • 위상 정렬 (2)
        • SCC (1)
        • BFS & DFS (3) N
        • 그래프 (2)
        • LCA (2)
        • 세그먼트 트리 (2)
        • 플로이드 워셜 (1)
        • 문자열 (1)
        • 수학 (1)
        • Heap (1)
        • SQL (9)
        • 개념 정리 (5)
        • 예외처리 (1)
      • spring boot (6)
        • jpa (0)
        • querydsl (0)
        • MVC pattern (0)
        • setting (2)
      • 취준 (3)
      • CS (11)
        • 대규모 시스템 설계 (2)
        • 디자인패턴 (2)
        • 데이터베이스 (4)
        • 네트워크 (3)
        • 운영체제 (0)
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
moongi
[프로그래머스] 택배 상자 꺼내기
상단으로

티스토리툴바