๋ฌธ์์ด ์์ถ
๊ฐ์ ๋ฌธ์ ๋ฐ๋ณต ์ฐพ๊ธฐ
- ๊ฐ์ ๋ฌธ์๊ฐ ์ฐ์์ผ๋ก ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ ๋ฐ๋ณต๋๋ ๋ฌธ์ ๋ฐ๋ก ์ค๋ฅธ์ชฝ์ ๋ฐ๋ณต ํ์๋ฅผ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์์ด ์์ถํ๊ธฐ
- ๋ฐ๋ณตํ์ 1์ ์ ์ฉํ์ง ์์
- ์์ KKHSSSSSSSE
- i์ i+1์ ๋น๊ต. ๊ฐ์ผ๋ฉด cnt์ฆ๊ฐ, ๋ค๋ฅด ์ง์ ์ ๋ง๋๋ฉด String answer์ ํด๋น ๋ฌธ์, cnt๋ฅผ ๋์ ํ๋ฉด ๋จ.
- cnt๋ฅผ 1๋ก ์ด๊ธฐํ ํ๊ณ ๋ค์ ๋น๊ตํ๋ฉฐ ์ง๋๊ฐ๊ธฐ
- ๋ฐฐ์ด ๋งฝ ๋๋ฌธ์๊ฐ ์์ด ์์ธ ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ ๋งจ ๋์ ๋น ๋ฌธ์์ด์ ์ถ๊ฐํด์ค์ผํจ.
String answer = "";
str = str + " ";
int cnt = 1;
for( int i=0; i<s.length()-1 ; i++ ){
if( s.charAt(i)==s.charAt(i+1) ) cnt++;
else{
answer += s.charAt(i); //๋ฌธ์ ์ถ๊ฐ
if(cnt>1) answer += String.valueOf(cnt); //๋ฌธ์ ๋ฐ๋ณต ํ์ ์ถ๊ฐ
cnt=1; //cnt์ด๊ธฐํ
}
}
return answer;
์ํธ
ํน์๋ฌธ์ -> ์ด์ง์ -> ์ญ์ง์ -> ์์คํค์ฝ๋ ๋ณํ
- ์ต๋ณ๋ณ๋ณ๋ณ๋ณ์ต์ ์ผ๊ณฑ์๋ฆฌ ์ด์ง์๋ก ๋ณํ -> 1000001 -> 10์ง์ํํ๋ฉด65 -> ์์คํค์ฝ๋ 65 = A
- ์์ ์ต๋ณ๋ณ๋ณ๋ณ์ต์ต์ต๋ณ๋ณ์ต์ต์ต์ต์ต๋ณ๋ณ์ต์ต์ต์ต์ต๋ณ๋ณ์ต์ต๋ณ๋ณ
- ์ธ๋ฑ์ค0๋ถํฐ 7๊น์ง ๋ฌธ์์ด ์๋ฅด๊ธฐ str.subString(0, 7)
- ์ต์ 1๋ก, ๋ณ์ 0์ผ๋ก ์นํํ๊ธฐ
for( int i=0; i< n ; i++ ){
String tmp = str.subString(0, 7).replace('#','1').replace('*','0');
int num = Integer.parseInt(tmp, 2); //2์ง์ ๋ฌธ์์ด์ 10์ง์ int๋ก ๋ณํํ๊ธฐ
answer += (char)num; //์ ์๋ฅผ ์์คํค์ฝ๋์ ํด๋นํ๋ ๊ฒ์ผ๋ก ๋ฐ๊พธ๊ธฐ (์ด๊ฒฝ์ฐ 67 -> C)
str = str.subSring(7); //์ด๋ฏธ ํ์ธํ 7๊ฐ ๋นผ๊ณ ๊ทธ ์ดํ๋ง ๋จ๊ฒ String ์๋ฅด๊ธฐ
}