2023. 10. 8. 00:09ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1206
-> ์ด์ ๋ฌธ์ ํ์ด
11. ๋ฌธ์์ด ์์ถ
์ค๋ช
์ํ๋ฒณ ๋๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ๋ฌธ์๊ฐ ์ฐ์์ผ๋ก ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ ๋ฐ๋ณต๋๋
๋ฌธ์ ๋ฐ๋ก ์ค๋ฅธ์ชฝ์ ๋ฐ๋ณต ํ์๋ฅผ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์์ด์ ์์ถํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋จ ๋ฐ๋ณตํ์๊ฐ 1์ธ ๊ฒฝ์ฐ ์๋ตํฉ๋๋ค.
์ ๋ ฅ
์ฒซ ์ค์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. ๋ฌธ์์ด์ ๊ธธ์ด๋ 100์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
์ฒซ ์ค์ ์์ถ๋ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
KKHSSSSSSSE
์์ ์ถ๋ ฅ 1
K2HS7E
์์ ์ ๋ ฅ 2
KSTTTSEEKFKKKDJJGG
์์ ์ถ๋ ฅ 2
KST3SE2KFK3DJ2G2
๋ฌธ์ ํ์ด 1
public String solution(String input) {
String answer = "";
char[] chars = input.toCharArray();
int sum = 0;
for (int i = 0; i < chars.length; i++) {
for (int j = i; j < chars.length; j++) {
if (chars[i] == chars[j]) {
sum++;
} else {
break;
}
}
answer += chars[i];
if (sum != 1) {
answer += sum;
}
i = i + sum - 1 ;
sum = 0;
}
return answer;
}
๐ฉ๐ป๐ป : ๋ญ๊ฐ.. ๊ฐ๋จํ๊ฒ ํ ์ ์์๊ฑฐ๋ผ ์๊ฐํ๋๋ฐ ๋จธ๋ฆฌ๊ฐ ๋์ด ๋๋์ง.. ๋จธ๋ฆฌ๊ฐ ์๋์๊ฐ์ ๊ทธ๋ฅ ์๊ฐ๋๋๋๋ก ํ๋ค๋ณด๋ ์ฝ๋๊ฐ.. ์ด๋ชจ์์ด ๋๋ค.. ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ ์ํ ํฐ ๋๋ค ใ ๋ณ๋ช ์ ๋๋ค.. ๊ณต๋ถํ๊ฒ ์..
์ฐ์ ๋ฌธ์ ๋ ์ฃผ์ด์ง ๋ฌธ์์ด์ ๋ฌธ์๊ฐ ์ฌ๋ฌ๊ฐ ์ค๋ณต๋๋ฉด ์ฒซ๋ฒ์งธ ๋ฌธ์๋ง ๋ ๋๊ณ ๊ทธ ๊ฐฏ์๋ฅผ ํ๊ธฐํ๋๋ก ๋ณ๊ฒฝํ๋ ๋ฌธ์ ์ด๋ค.
๋๋ ๊ทธ๋์ ์ด์ค for ๋ฌธ์ ์ฌ์ฉํด์ chars์ ๋ฌธ์์ด์ ๋น๊ตํด์ฃผ๋๋ฐ ์ด๋ ๋๋ฒ์งธ for๋ฌธ์ j๊ฐ 0์ด ์๋๋ผ i ๊ฐ ๋ถํฐ ์์ํ๊ฒ ํ๋ค.
chars[i]์ chars[j] ๊ฐ ๊ฐ์ผ๋ฉด sum์ +1 ํด์ฃผ๊ณ ์๋๋ฉด ๋๋ฒ์งธ ๋ฐ๋ณต๋ฌธ์ ๋์ค๋๋ก ํ๋ค.
๊ทธ ๋ค์ answer ์ chars[i] ๋ฌธ์๋ฅผ ๋จผ์ ๋์ ํด์ฃผ๊ณ , ๊ทธ ๋ค์ sum์ด 1์ด ์๋๋ฉด sum ๊ฐ๋ answer์ ๋ํด์ฃผ๊ฒ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ sum ๊ฐ์ ์ด๊ธฐํํ๊ธฐ ์ ์ i ์ ๊ฐ์ ์ค๋ณต ๋ฌธ์์ด์ ๋์ด ์ด๋ํ๋๋ก sum -1 ํด์คฌ๋ค.
๊ทธ ๋ค์ sum ์ ๋ค์ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
(์ด์ค for ๋ฌธ์ ์ฌ์ฉํ ์ด์ ๋ ํด๋น ๋ฌธ์์ ๋ค์ ๋ฌธ์๋ฅผ ๋น๊ตํ๊ธฐ ์ํด์์๋ค..ใ )
๋ฌธ์ ํ์ด 2
public String solution2(String input) {
String answer = "";
input += " ";
int cnt = 1;
for (int i = 0; i < input.length() - 1; i++) {
if (input.charAt(i) == input.charAt(i + 1)) {
cnt++;
} else {
answer += input.charAt(i);
if (cnt > 1) {
answer += cnt;
}
cnt = 1;
}
}
return answer;
}
๐พ : ๊ฐ์ฌ๋์ ๋์ ์ด ๋ต๋ตํ ๋ง์์ ๋ปฅ ๋ซ์ด์ฃผ์ จ๋ค... ํ
๊ทธ๋ฅ ๊ฐ๋จํ๊ฒ ๋ฌธ์๋ฅผ ๋น๊ตํ ๋ i ์ i+1 ์ ๋น๊ตํด์ ๊ฐ์ผ๋ฉด cnt ์ ๊ฐ์ +1 ํด์ฃผ๊ณ , ๋ค๋ฅด๋ฉด answer์ ํด๋น ๋ฌธ์๋ฅผ ๋ํด์ฃผ๊ณ , ๊ทธ ๋ค์ cnt ์ ๊ฐ์ด 1๋ณด๋ค ํฌ๋ฉด answer์ cnt ๊ฐ๋ ๋ํด์ฃผ๊ฒ ํ๋ค. ๊ทธ ๋ค์ cnt ๋ฅผ 1๋ก ์ด๊ธฐํํด์ค๋ค.
๊ทผ๋ฐ ์ด๋ ๋งจ ๋ง์ง๋ง ๊ฐ์ ํ ๋๋ i +1 ๊ฐ์ ๋น๊ตํ๋ ค๊ณ ํ๋ฉด index๊ด๋ จ ์๋ฌ๊ฐ ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ ์ด์ input ์ ๋น ๋ฌธ์์ด์ ๋ํด์ค์ ๊ทธ ๋ค์ ๋ฌธ์์ด์ ๋น๊ต๋ ํ ์ ์๋๋ก ํด์ค๋ค. ๊ทธ ๋ค์ for๋ฌธ์ ์กฐ๊ฑด์์ผ๋ก i < input.length() ๊ฐ ์๋๋ผ i < input.length()-1 ์ ํ๋๋ก ํ๋๋ฐ ๊ทธ ์ด์ ๋ ๋น ๋ฌธ์์ด๊น์ง ๊ธธ์ด๋ฅผ ๊ตฌํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฌธ์์ด์ ์ ์ธํ input ๊ธธ์ด๋ฅผ ๊ตฌํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.