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에서 더 쉬운 방법이 있을 것 같긴 한데
귀찮아서 그냥 이렇게 했다

혼자 힘으로 해내서 더 뿌듯하다
나 그래도 바보 멍청이 감자까지는 아니다!!
'C++ 문제풀기 > 백준-프로그래머스' 카테고리의 다른 글
| 백준 | 2667. 단지번호 붙이기 (3) | 2025.06.24 |
|---|---|
| 프로그래머스 | 개인정보수집유효기간 (0) | 2025.06.19 |
| 프로그래머스 | 키패드 누르기 (0) | 2025.06.19 |
| 프로그래머스 | 나선형으로 배열하기 (0) | 2025.06.17 |
| 백준 | 1316. 그룹 단어 체커 (0) | 2025.06.17 |