본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 1656. Design an Ordered Stream

반응형

https://leetcode.com/problems/design-an-ordered-stream/description/

class와 vector를 사용해 구현하는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

자료를 저장할 string vector v와 ptr을 선언해 생성자에서 n+1만큼 capacity를 v에 부여하고 ptr을 1로 초기화합니다.

📔 풀이과정

insert함수 호출시 마다 다음을 수행해야합니다.

1. v의 idKey위치에 value를 넣습니다.

2. 연결할 vector chunk를 선언해 ptr의 해당하는 원소부터 while loop를 수행하며 오른쪽으로 인접한 chunk들을 v로부터 이어줍니다.

3. chunk를 반환합니다.


📕 Code

📔 C++

class OrderedStream {
public:
    vector <string> v;
    int ptr;

    OrderedStream(int n) {
        v.resize(n + 1);
        ptr = 1;
    }
    
    vector<string> insert(int idKey, string value) {
        v[idKey] = value;
        vector <string> chunks;
        while(ptr < v.size() && v[ptr] != "") {
            chunks.push_back(v[ptr++]);
        }
        return chunks;
    }
};

/**
 * Your OrderedStream object will be instantiated and called as such:
 * OrderedStream* obj = new OrderedStream(n);
 * vector<string> param_1 = obj->insert(idKey,value);
 */

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.