[백준] 풍선 터뜨리기 #2346

welchs·2022년 1월 15일
2

알고리즘

목록 보기
11/44
post-thumbnail

설명

이번에는 Node.js 풀이가 없다...
이번 문제 덕분에 삽질을 또 엄청나게 했다.
본인은 처음에 Node.js로 먼저 풀고 c++로 푸는데 아무리 Node.js로 풀어도 메모리 초과가 나길래 c++로 풀었다.

c++로 풀고나서 백준의 node.js 정답 코드를 확인했는데, 정답처리된 node.js 코드를 그대로 복붙해서 제출해도 메모리 초과가 났다.
그냥 Node.js에 대한 메모리 할당을 백준에서 잘못한 것 같다...(사라진 내 시간..)

풀이 자체는 vector에 pair로 { 번호, 값 }을 두고 하나씩 꺼내서 풀었다.
항상 값은 맨 처음 값을 꺼냈고, vector 자체를 rotate 시켜서 값만큼 이동시켰다.

C++ 풀이

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int N; cin >> N;
    vector<pair<int, int>> V;
    for (int i=0; i<N; i++) {
        int num;
        cin >> num;
        V.push_back({ i+1, num });
    }
    int idx = 0;
    while(!V.empty()) {
        cout << V.front().first << " ";
        int num = V.front().second;
        V.erase(V.begin());
        
        if (V.empty()) break;
        
        if (num > 0) {
            for (int i=0; i<num-1; i++) {
                V.push_back(V.front());
                V.erase(V.begin());
            }
        } else {
            for (int i=0; i<-num; i++) {
                V.insert(V.begin(), V.back());
                V.erase(V.end() - 1);
            }
        }
        
    }
    return 0;
}
profile
고수가 되고 싶은 조빱

1개의 댓글

comment-user-thumbnail
2024년 1월 24일

흑흑.. 덕분에 시간을 아낄 수 있었습니다. 감사합니다.

답글 달기