반응형
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);
*/
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.