๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/12973
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๋, ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๊ฐ์ง๊ณ ์์ํฉ๋๋ค. ๋จผ์ ๋ฌธ์์ด์์ ๊ฐ์ ์ํ๋ฒณ์ด 2๊ฐ ๋ถ์ด ์๋ ์ง์ ์ฐพ์ต๋๋ค. ๊ทธ๋ค์, ๊ทธ ๋์ ์ ๊ฑฐํ ๋ค, ์๋ค๋ก ๋ฌธ์์ด์ ์ด์ด ๋ถ์ ๋๋ค. ์ด ๊ณผ์ ์ ๋ฐ๋ณตํด์ ๋ฌธ์์ด์ ๋ชจ๋ ์ ๊ฑฐํ๋ค๋ฉด ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. ๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ก์ ๋, ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ํํ ์ ์๋์ง ๋ฐํํ๋ ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ฑ๊ณต์ ์ผ๋ก ์ํํ ์ ์์ผ๋ฉด 1์, ์๋ ๊ฒฝ์ฐ 0์ ๋ฆฌํดํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฌธ์์ด S = baabaa ๋ผ๋ฉด
b aa baa → bb aa → aa →
์ ์์๋ก ๋ฌธ์์ด์ ๋ชจ๋ ์ ๊ฑฐํ ์ ์์ผ๋ฏ๋ก 1์ ๋ฐํํฉ๋๋ค.
์ ํ ์ฌํญ
- ๋ฌธ์์ด์ ๊ธธ์ด : 1,000,000์ดํ์ ์์ฐ์
- ๋ฌธ์์ด์ ๋ชจ๋ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | result |
baabaa | 1 |
cdcd | 0 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ์์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ฌธ์์ด์ด ๋จ์์์ง๋ง ์ง์ง์ด ์ ๊ฑฐํ ์ ์๋ ๋ฌธ์์ด์ด ๋ ์ด์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ 0์ ๋ฐํํฉ๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
import java.util.*;
class Solution{
public int solution(String s){
int answer = -1;
// ์์ธ์ฒ๋ฆฌ: ๊ธธ์ด๊ฐ 1์ด๋ฉด ์ ๋ ์ง์ ์ด๋ฃฐ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก 0 ๋ฐํ
if (s.length() == 1) {
return 0;
}
// ๋ฌธ์ ๋น๊ต๋ฅผ ์ํ ์คํ ์์ฑ
Stack<Character> stack = new Stack<>();
// ๋ฌธ์์ด์ ํ ๊ธ์์ฉ ์ํ
for (char c : s.toCharArray()) {
// ์คํ์ด ๋น์ด์์ง ์๊ณ , ํ์ฌ ๋ฌธ์์ ์คํ ๋งจ ์ ๋ฌธ์๊ฐ ๊ฐ๋ค๋ฉด
if (!stack.isEmpty() && c == stack.peek()) {
// ์ ๊ฑฐ
stack.pop();
} else {
// ์คํ์ ์ถ๊ฐ
stack.push(c);
}
}
// ๋ชจ๋ ๋ฌธ์๊ฐ ์ง์ ์ด๋ฃจ์ด ์ ๊ฑฐ๋์๋ค๋ฉด
if (stack.size() == 0) {
// answer์ 1 ์ ์ฅ
answer = 1;
} else {
// ๊ทธ๋ ์ง ์๋ค๋ฉด answer์ 0 ์ ์ฅ
answer = 0;
}
// answer ๋ฐํ
return answer;
}
}
๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ์๊ฐํ ๋ฐฉํฅ
ํด๋น ์ธ๋ฑ์ค์ ๋ฌธ์์ด๊ณผ ๊ทธ ๋ค์ ๋ฌธ์์ด์ ๋น๊ตํด์ ๊ฐ๋ค๋ฉด ๋ถ๋ถ ๋ฌธ์์ด๋ก ์ ๊ฑฐํ๋ฉด ๋์ง ์์๊น?๊ทธ๋ ๋ค๋ฉด ๋ฒ์๋ ์ด๋ป๊ฒ ์ก์์ผ ํ์ง..? ์ญ์ ๋๋ฉด ๊ธธ์ด๊ฐ ์ ์ ์ค์ด๋๋๋ฐ..๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ผ ๊ฒฝ์ฐ ๋ฐ๋ก ์คํํ๋ฉด ๋๋ค.
์คํ์ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด ๋๋ค. ์ฝ๊ฒ ํด๊ฒฐ ๊ฐ๋ฅํ๋ค.
๋ด๊ฐ ์๊ฐํ๋ ๋ฐฉํฅ์ด ํ๋ ค์ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋ฉด์ ์๋กญ๊ฒ ๋ฐฉํฅ์ ์ ํ๊ณ ํ์๋ค..
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ๐ต ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์นดํซ (1) | 2025.04.22 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํผ๋ณด๋์น ์ (1) | 2025.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ๋ค์ ํฐ ์ซ์ (1) | 2025.04.16 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ซ์์ ํํ (0) | 2025.04.16 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์์ด (0) | 2025.04.15 |