โค๏ธ Problem
- ๋ฌธ์
๋ฌธ์์ด s๊ฐ ์ ๋ ฅ๋์์ ๋ ๋ค์ ๊ท์น์ ๋ฐ๋ผ์ ์ด ๋ฌธ์์ด์ ์ฌ๋ฌ ๋ฌธ์์ด๋ก ๋ถํดํ๋ ค๊ณ ํฉ๋๋ค.
- ๋จผ์ ์ฒซ ๊ธ์๋ฅผ ์ฝ์ต๋๋ค. ์ด ๊ธ์๋ฅผ x๋ผ๊ณ ํฉ์๋ค.
- ์ด์ ์ด ๋ฌธ์์ด์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฝ์ด๋๊ฐ๋ฉด์, x์ x๊ฐ ์๋ ๋ค๋ฅธ ๊ธ์๋ค์ด ๋์จ ํ์๋ฅผ ๊ฐ๊ฐ ์ ๋๋ค. ์ฒ์์ผ๋ก ๋ ํ์๊ฐ ๊ฐ์์ง๋ ์๊ฐ ๋ฉ์ถ๊ณ , ์ง๊ธ๊น์ง ์ฝ์ ๋ฌธ์์ด์ ๋ถ๋ฆฌํฉ๋๋ค.
- s์์ ๋ถ๋ฆฌํ ๋ฌธ์์ด์ ๋นผ๊ณ ๋จ์ ๋ถ๋ถ์ ๋ํด์ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค. ๋จ์ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ข ๋ฃํฉ๋๋ค.
- ๋ง์ฝ ๋ ํ์๊ฐ ๋ค๋ฅธ ์ํ์์ ๋ ์ด์ ์ฝ์ ๊ธ์๊ฐ ์๋ค๋ฉด, ์ญ์ ์ง๊ธ๊น์ง ์ฝ์ ๋ฌธ์์ด์ ๋ถ๋ฆฌํ๊ณ , ์ข ๋ฃํฉ๋๋ค.
๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ ๊ณผ์ ๊ณผ ๊ฐ์ด ๋ฌธ์์ด๋ค๋ก ๋ถํดํ๊ณ , ๋ถํดํ ๋ฌธ์์ด์ ๊ฐ์๋ฅผ return ํ๋ ํจ์ solution์ ์์ฑํ์ธ์.
- ์ ํ ์ฌํญ
- 1 ≤ s์ ๊ธธ์ด ≤ 10,000
- s๋ ์์ด ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ ์ถ๋ ฅ ์ & ์ค๋ช
no | s | result |
1 | "banana" | 3 |
2 | "abracadabra" | 6 |
3 | "aaabbaccccabba" | 3 |
- s="banana"์ธ ๊ฒฝ์ฐ ba - na - na์ ๊ฐ์ด ๋ถํด๋ฉ๋๋ค.
- s="abracadabra"์ธ ๊ฒฝ์ฐ ab - ra - ca - da - br - a์ ๊ฐ์ด ๋ถํด๋ฉ๋๋ค.
- s="aaabbaccccabba"์ธ ๊ฒฝ์ฐ aaabbacc - ccab - ba์ ๊ฐ์ด ๋ถํด๋ฉ๋๋ค.
๐ Solution
ํ์ด
class Solution {
public int solution(String s) {
String start = s.substring(0, 1);
int same = 1;
int diff = 0;
int answer = 0;
int index = 0;
for(int i=2; i<s.length(); i++) {
String cmp = s.substring(i-1, i);
if(index+1 != i) {
if(cmp.equals(start)) {
same++;
} else {
diff++;
}
} else {
same = 1;
}
if(diff > 0 && same == diff) {
index += same+diff;
answer++;
same = 1;
diff = 0;
if(index < s.length()) {
start = s.substring(index, index+1);
} else {
break;
}
} else {
continue;
}
}
if(diff!=same) {
answer++;
}
return answer;
}
}
์ฒ๋ฆฌ์๋ GOOD
๐ Comment
์ด ๋ฌธ์ ๋ charAt()์ผ๋ก๋ ํ ์ ์๋ค. ๊ตณ์ด ๊ตณ์ด substring();์ผ๋ก ํ๋ฉด์ ์ฝ๋๊ฐ ๊ธธ์ด์ก๋ค๐
๋จผ์ , String start๋ฅผ ์ ์ธํ๋ฉด์ s.substring(0, 1)์ ๋ฃ์๋ค. ์ฆ ๋ฌธ์์ด์ ๊ฐ์ฅ ์ฒ์ ๋ฌธ์๋ฅผ start ๋ณ์์ ๋ฃ์๋ค. ์ดํ for๋ฌธ์์ int same๊ณผ int diff๊ฐ ๊ฐ์ ์ซ์๊ฐ ๋๋ฉด start์๋ same๊ณผ diff๊ฐ ๊ฐ์์ง๋ ์๊ฐ์ start = s.substring(index, index+1);๊ฐ๋๋ค. ๊ทธ ์ด์ ๋ "์ฒ์์ผ๋ก ๋ ํ์๊ฐ ๊ฐ์์ง๋ ์๊ฐ ๋ฉ์ถ๊ณ , ์ง๊ธ๊น์ง ์ฝ์ ๋ฌธ์์ด์ ๋ถ๋ฆฌ"ํ ๋ค์์ ๋ฌธ์์ด์ ๊ธฐ์ค์ผ๋ก ๋น๊ต๋ฅผ ์ด์ด๋๊ฐ์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
int same=1;์ธ ์ด์ ๋ ์ฒ์์ผ๋ก ์ค์ ๋ ๋ฌธ์์ด start ๋ํ ์นด์ดํธํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋๋ฌธ์ int diff๋ 0์ผ๋ก ์ค์ ๋๋ค. int answer๋ ๋ฌธ์์ด์ ๊ฐ์๋ฅผ ์นด์ดํธํ ๋ณ์์ด๋ฏ๋ก 0์ผ๋ก ์ค์ ํ๋ค. int index๋ 0์ผ๋ก ์ค์ ํ๋๋ฐ
'Programmers lv-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2023.01.03 |
---|---|
์ซ์ ์ง๊ฟ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.27 |
์คํจ์จ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.26 |
๊ณผ์ผ ์ฅ์ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (2) | 2022.12.24 |
๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.23 |
์์ฃผํ์ง ๋ชปํ ์ ์ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.23 |
๋๊ธ