๐ ๋ฌธ์ ๋งํฌ
110 ์ฎ๊ธฐ๊ธฐ
์ฝ๋ฉํ
์คํธ ์ฐ์ต - 110 ์ฎ๊ธฐ๊ธฐ ๋ฌธ์ ์
๋๋ค.
๐ก ๋ฌธ์ ํ์
- 0๊ณผ 1๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด ์ฌ๋ฌ ๊ฐ ์ฃผ์ด์ง๋ค.
- ๋ฌธ์์ด์์
"110"์ ๋ฝ์๋ด์ด ๋ค๋ฅธ ์์น์ ๊ทธ๋๋ก ๋ค์ ๋ผ์ ๋ฃ๋ ์์ ์ ์ํ๋ ๋งํผ ๋ฐ๋ณตํ ์ ์๋ค. - ์ด ์์ ์ ๋ฐ๋ณตํด์ ๋ง๋ค ์ ์๋ ๋ฌธ์์ด ์ค ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์๋ ๋ฌธ์์ด์ ๊ฐ๊ฐ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
๐๏ธ ์ ๊ทผ ๋ฐฉ๋ฒ
- ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์๊ฒ ๋ง๋ค๋ ค๋ฉด,
"110"์ ์ต๋ํ ์์ชฝ์์ ์ ๊ฑฐํ๊ณ , ๋จ์ ๋ฌธ์์ด์์ ๊ฐ์ฅ ๋ง์ง๋ง0๋ฐ๋ก ๋ค์ ๋ค์ ์ฑ์ ๋ฃ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค. - ์คํ์ ์ด์ฉํด ๋ฌธ์์ด์ ์ํํ๋ฉด์
"110"ํจํด์ด ๋ง๋ค์ด์ง ๋๋ง๋ค ์คํ์์ ์ ๊ฑฐํ๊ณ ์ ๊ฑฐ ํ์๋ฅผ ์ผ๋ค. - ๋ชจ๋
"110"์ ์ ๊ฑฐํ ๋ค ๋จ์ ๋ฌธ์์ด์์ ๋ง์ง๋ง'0'์ ์์น๋ฅผ ์ฐพ๋๋ค.'0'์ด ์๋ค๋ฉด ๋ฌธ์์ด์ ๋งจ ์์"110"๋ค์ ๋ชจ๋ ๋ถ์ธ๋ค.'0'์ด ์๋ค๋ฉด ๊ทธ ์์น ๋ฐ๋ก ๋ค์"110"๋ค์ ๋ชจ๋ ๋ผ์ ๋ฃ๋๋ค.
๐งฉ ์ฝ๋ ๊ตฌํ
class Solution {
public String[] solution(String[] s) {
String[] answer = new String[s.length];
for (int i = 0; i < s.length; i++) {
StringBuilder stack = new StringBuilder();
int count = 0;
for (char c : s[i].toCharArray()) {
stack.append(c);
int len = stack.length();
if (len >= 3 &&
stack.charAt(len - 3) == '1' &&
stack.charAt(len - 2) == '1' &&
stack.charAt(len - 1) == '0') {
stack.delete(len - 3, len);
count++;
}
}
int idx = stack.lastIndexOf("0");
StringBuilder result = new StringBuilder();
if (idx == -1) {
for (int j = 0; j < count; j++) {
result.append("110");
}
result.append(stack);
} else {
result.append(stack.substring(0, idx + 1));
for (int j = 0; j < count; j++) {
result.append("110");
}
result.append(stack.substring(idx + 1));
}
answer[i] = result.toString();
}
return answer;
}
}