[Programmers]_C++_Algorithm_택배상자꺼내기

신치우·2025년 2월 22일

C++_algorithm

목록 보기
9/17

num과 w를 가지고 계산식을 세워서 해도 됨
하지만 그림을 그려가면서 하고 싶어서 아래 방법을 선택.

#include <string>
#include <vector>

using namespace std;



int solution(int n, int w, int num) {
    int answer = 0;
    vector<vector<int>> vec(n/w + 1, vector<int>(w, 0));
    int cnt = 0;
    int num_pos = -1;
    
    for (int i = 0; i< n/w + 1; i++){
        if (i %2== 0){
            for (int j = 0; j < w; j++){
                cnt++;
                vec[i][j] = cnt;
                    if (cnt == num){
                        num_pos = j;
                        answer++;
                    } else if (num_pos != -1 && num_pos == j){
                        answer++;
                    }
                    if (cnt == n){
                        return answer;
                    }
                } 
        } else if (i%2 ==1){
            for (int j = w-1; j > -1; j--){
                cnt++;
                vec[i][j] = cnt;
                    if (cnt == num){
                        num_pos = j;
                        answer++;
                    } else if (num_pos != -1 && num_pos == j){
                        answer++;
                    }
                    if (cnt == n){
                        return answer;
                    }
                }
        }
    }

    return answer;
}
profile
https://shin8037.tistory.com/

0개의 댓글