โ๋ฌธ์
์ฑ๋ฅ ์์ฝ
๋ฐ๋ณต๋ฌธ โก๏ธ ๋ฉ๋ชจ๋ฆฌ: 132 MB, ์๊ฐ: 189.21 ms
ํ โก๏ธ ๋ฉ๋ชจ๋ฆฌ: 190 MB, ์๊ฐ: 191.63 ms
๋ฌธ์ ์ค๋ช
ํ๋ฐฐ์์๋ ํฌ๊ธฐ๊ฐ ๋ชจ๋ ๊ฐ์ผ๋ฉฐ 1๋ฒ ์์๋ถํฐ n๋ฒ ์์๊น์ง ๋ฒํธ๊ฐ ์ฆ๊ฐํ๋ ์์๋๋ก ์ปจํ ์ด๋ ๋ฒจํธ์ ์ผ๋ ฌ๋ก ๋์ฌ ์ ๋ฌ๋ฉ๋๋ค.
์ปจํ ์ด๋ ๋ฒจํธ๋ ํ ๋ฐฉํฅ์ผ๋ก๋ง ์งํ์ด ๊ฐ๋ฅํด์ ๋ฒจํธ์ ๋์ธ ์์๋๋ก(1๋ฒ ์์๋ถํฐ) ์์๋ฅผ ๋ด๋ฆด ์ ์์ต๋๋ค.
ํ๋ฐฐ ๊ธฐ์ฌ๋์ด ๋ฏธ๋ฆฌ ์๋ ค์ค ์์์ ๋ง๊ฒ ํ๋ฐฐ์์๋ฅผ ์ค์ด์ผ ํฉ๋๋ค.
๋ง์ฝ ์ปจํ ์ด๋ ๋ฒจํธ์ ๋งจ ์์ ๋์ธ ์์๊ฐ ํ์ฌ ํธ๋ญ์ ์ค์ด์ผ ํ๋ ์์๊ฐ ์๋๋ผ๋ฉด ๊ทธ ์์๋ฅผ ํธ๋ญ์ ์ค์ ์์๊ฐ ๋ ๋๊น์ง ์ ์ ๋ณด์กฐ ์ปจํ ์ด๋ ๋ฒจํธ์ ๋ณด๊ดํด์ผ ํฉ๋๋ค.
๋ณด์กฐ ์ปจํ ์ด๋ ๋งจ ์์ ์์๋ง ๋บ ์ ์์ต๋๋ค(์ฆ, ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ณด์กฐ ์ปจํ ์ด๋ ๋ฒจํธ์ ๋ณด๊ดํ ์์๋ถํฐ ๊บผ๋ด๊ฒ ๋ฉ๋๋ค).
๋ณด์กฐ ์ปจํ ์ด๋ ๋ฒจํธ๋ฅผ ์ด์ฉํด๋ ๊ธฐ์ฌ๋์ด ์ํ๋ ์์๋๋ก ์์๋ฅผ ์ฃ์ง ๋ชป ํ๋ค๋ฉด, ๋ ์ด์ ์์๋ฅผ ์ฃ์ง ์์ต๋๋ค.
์ ํ์ฌํญ
- 1 ≤ order์ ๊ธธ์ด ≤ 1,000,000
- order๋ 1์ด์ order์ ๊ธธ์ด ์ดํ์ ๋ชจ๋ ์ ์๊ฐ ํ๋ฒ์ฉ ๋ฑ์ฅํฉ๋๋ค.
- order[i]๋ ๊ธฐ์กด์ ์ปจํ ์ด๋ ๋ฒจํธ์ order[i]๋ฒ์งธ ์์๋ฅผ i+1๋ฒ์งธ๋ก ํธ๋ญ์ ์ค์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
์ ์ถ๋ ฅ ์
order | result |
[4, 3, 1, 2, 5] | 2 |
[5, 4, 3, 2, 1] | 5 |
โ๐ปํ์ด
ํ๋ฐฐ ๊ธฐ์ฌ๋์ด ์ํ๋ ์์๋ก ํ๋ฐฐ ์์๋ฅผ ์ฐจ์ ์ฃ์ ๋,
๊ธฐ์กด ์ปจํ
์ด๋ ๋ฒจํธ(๋ฐ๋ณต๋ฌธ or ํ)์ ์์๊ฐ ๋ง์ง ์๋๋ค๋ฉด ๋ณด์กฐ ์ปจํ
์ด๋ ๋ฒจํธ(์คํ)์ ๋ฃ๋๋ค.
์ดํ ๋ณด์กฐ ์ปจํ
์ดํฐ ๋ฒจํธ์ ๋งจ ์์ ์์๊ฐ ์ํ๋ ์์๋ผ๋ฉด ์ด๋ฅผ ๊บผ๋ธ๋ค.
์ํ๋ ์์์ ๋ง์ ๋๋ง๋ค answer + 1์ ํ๋ค.
๐ป์ฝ๋
/** ์คํ๊ณผ ํ ์ด์ฉํ ํ์ด **/
import java.util.*;
class Solution {
public int solution(int[] order) {
int answer = 0;
Stack<Integer> s = new Stack<>();
Queue<Integer> q = new LinkedList<>();
for(int i = 1; i <= order.length; i++){
q.add(i);
}
int i = 0;
while(!q.isEmpty()){
int o = q.poll();
if(o != order[i]){
s.push(o);
}
else {
i++;
answer++;
while(!s.isEmpty() && s.peek() == order[i]){
s.pop();
answer++;
i++;
}
}
}
return answer;
}
}
/** ๋ฐ๋ณต๋ฌธ๊ณผ ์คํ์ ์ด์ฉํ ํ์ด **/
import java.util.*;
class Solution {
public int solution(int[] order) {
int answer = 0;
Stack<Integer> s = new Stack<>();
int idx = 0;
for(int i = 1; i <= order.length; i++){
s.add(i);
while(!s.isEmpty() && s.peek() == order[idx]){
s.pop();
answer++;
idx++;
}
}
return answer;
}
}
'Coding Test > Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ/Python - Lv.2 (0) | 2024.10.25 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] ์์ถ/Python - Lv.2 (1) | 2024.10.24 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ ์ธํ์ฌ/Java - Lv.2 (0) | 2024.10.21 |
[Baekjoon] 1904.01ํ์ผ/Java - Silver3 (0) | 2024.10.15 |
[Baekjoon] 9461.ํ๋๋ฐ ์์ด/Java - Silver3 (0) | 2024.10.15 |