๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[C++/PGS] Lv.1 : ํƒ๋ฐฐ ์ƒ์ž ๊บผ๋‚ด๊ธฐ

by xxilliant 2025. 6. 4.
728x90
๋ฐ˜์‘ํ˜•

 

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr


ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ1. 2025 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ์ฑŒ๋ฆฐ์ง€ 2์ฐจ ์˜ˆ์„  ๊ธฐ์ถœ

 

์›์‹œ ๋ฐฐ์—ด int[][]๋กœ ํ’€์—ˆ๋‹ค๊ฐ€ ๊ณ„์† core dumped ์—๋Ÿฌ ๋– ์„œ ํ™”๋‚ฌ๋Š”๋ฐ

vector๋กœ ๋ฐ”๊พธ๋‹ˆ๊นŒ ๋œ๋‹ค. ๐Ÿคฏ๐Ÿคฏ

 

 

๋‚˜์˜ ํ’€์ด

#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

int solution(int n, int w, int num) {
    int answer = 0;
    vector<vector<int>> box;
    int h = n/w;
    if(n%w>0) h++;
    
    bool even = true;
    int number = 1;
    int x = 0; int y = 0;
    
    for(int i=0; i<h; ++i){
        vector<int> v;
        for(int j=0; j<w; ++j){
            if(number>n) v.push_back(0);
            else v.push_back(number);
            if(number == num){
                x=i; y= even ? j : w-1-j;
            }
            number++;
        }
        if(even) box.push_back(v);
        else {
            reverse(v.begin(), v.end());
            box.push_back(v);
        }
        even = !even;
    }
    
    answer = h-x;
    if(box[h-1][y]==0) answer--;
    
    return answer;
}

728x90
๋ฐ˜์‘ํ˜•