2025. 4. 10

나는 vector<vector<int>>를 활용해서

이렇게

index 경계 설정하고 거기 닿으면 반대방향으로 전환해가면서

숫자를 begin()에 insert 해서 채웠다.

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

int solution(int n, int w, int num) {
    int answer = 0;
    vector<vector<int>>store(w);
    int line = 0, di = 0; // 0:오, 1:왼
    for(int i = 1; i<=n; ++i){
        if(di == 0){
            store[line].insert(store[line].begin(),i); 
            if(line == (w-1)) di = 1;
            else line++;
        }
        else {
            store[line].insert(store[line].begin(),i);
            if(line == 0) di = 0;
            else line--;
        }
    }
    
    for(auto x:store){
        answer = find(x.begin(), x.end(), num)-x.begin();
        if(answer != x.size()) break;
    }
    return answer+1;
}

find에서 더 쉬운 방법이 있을 것 같긴 한데

귀찮아서 그냥 이렇게 했다

혼자 힘으로 해내서 더 뿌듯하다

나 그래도 바보 멍청이 감자까지는 아니다!!

+ Recent posts