์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
1 ์ด | 256MB | 23.480 % |
์คํ ๊ตฌํํด์ ํ๊ธ-โญ
๋ฌธ์
ํด๊ฒฐ
key point, ์ปค์์ ์ด๋์ ๊ตฌํํ๋ค. → cur
head → ์คํ ← tail
- ์คํ์ head์ tail์ด ๊ฐ๋ฆฌํค๋ ๊ตฌ์กฐ๋ก ๋ง๋ค๊ณ
- ์ปค์ ์ญํ ์ ํ๋ ํฌ์ธํฐ cur์ ์ด์ฉํ์ฌ
- < ์ ์ ๋ ฅ๋ฐ์ผ๋ฉด cur๋ฅผ ์ผ์ชฝ์ผ๋ก,
- > ์ ์ ๋ ฅ๋ฐ์ผ๋ฉด cur๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๊ณ
- - ์ ์
๋ ฅ๋ฐ์ผ๋ฉด ์ปค์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด์ ๋
ธ๋์ ์ดํ๋
ธ๋๋ฅผ ์๋ก ์ฐ๊ฒฐ์์ผ์ฃผ๊ณ ,
์ปค์๊ฐ ๊ฐ๋ฅดํค๊ณ ์๋ ๋ ธ๋๋ฅผ ์ญ์ ํ๋ค. - ๊ทธ ์ธ์ ๋ฌธ์๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉด ์๋ก์ด ๋ ธ๋๋ฅผ ์์ฑํด์ ์คํ๊ณผ ์ฐ๊ฒฐํด์ค๋ค.
์ฝ๋
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
72656KB | 240 ms |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#include<iostream>
// ๋๋ธ ๋งํฌ๋ ๋ฆฌ์คํธ
// ์ฒ์๊ณผ ๋์ ์ค ๊ฒ.
class Node {
public:
char data;
Node* prev;
Node* next;
Node() {
prev = 0;
next = 0;
}
};
Node head;
Node tail;
char str[1000001];
int main() {
int T;
scanf("%d", &T);
// ๋ฌธ์์ด์ ์ ์ฅํ ๋ ๋ฒ์๋ ์์คํค์ฝ๋.
//ํฌ์ธํฐ๊ฐ ์ด ๊ฐ์ ๋๋ฌํ์ ๋ ๋์์ ์๊ฒํ๊ธฐ ์ํด์
head.data = -1;
tail.data = -1;
while(T--) {
head.next = &tail;
tail.prev = &head;
scanf("%s", str);
Node* cur; // ์
๋ ฅ๊ณผ ์ปค์์ ์ด๋ ์ํ.
cur = &head;
for (int i = 0; str[i]; ++i) {
if (str[i] == '<') {
if (cur != &head) cur = cur->prev;
}
else if (str[i] == '>') {
// ํค๋์์ tail ์ง์ ๊น์ง๋ง ์์ง์ผ์ ์๋ ๋
ธ๋.
if (cur->next != &tail) cur = cur->next;
}
else if (str[i] == '-') {
// ๋ฉ๋ชจ์ฅ์ ์ปค์๋ฅผ ๋ดค์ ๋ ์ค๋ฅธ์ชฝ์ ์๋ก์ด ์
๋ ฅ์ด ๋ค์ด์จ๋ค๊ณ ์๊ฐํ๊ณ
// ๋ฐฑ์คํ์ด์ค๋ฅผ ์
๋ ฅ๋ฐ์ผ๋ฉด ์ปค์ ์์ ๋ฌธ์ ํ๋ ์ญ์ .
if (cur != &head) {
Node* tmp = cur;
cur->prev->next = cur->next;
cur->next->prev = cur->prev;
cur = cur->prev;
free(tmp);
}
}
else {
Node* nNode = new Node;
nNode->data = str[i];
nNode->prev = cur;
nNode->next = cur->next;
//nNode->next->prev = nNode;
cur->next->prev = nNode;
cur->next = nNode;
cur = nNode;
}
}
Node* t = head.next;
while (t->data != -1) {
printf("%c", t->data);
t = t->next;
}
printf("\n");
}
return 0;
}
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #2164 ์นด๋2 (0) | 2020.06.02 |
---|---|
[BOJ] #14830 ๊ฒฝ์ฌ๋ก (0) | 2020.05.21 |
[BOJ] #1912 ์ฐ์ํฉ (0) | 2020.05.11 |
[BOJ] #2512 ์์ฐ (0) | 2020.05.11 |
[BOJ] #13414 ์๊ฐ์ ์ฒญ (0) | 2020.05.02 |
๋๊ธ