2023. 10. 8. 15:14ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1207
-> ์ด์ ๋ฌธ์ ํ์ด
12. ์ํธ
์ค๋ช
ํ์๋ ์ํฌ์๊ฒ ์ํ๋ฒณ ๋๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๋น๋ฐํธ์ง๋ฅผ ๋งค์ผ ์ปดํจํฐ๋ฅผ ์ด์ฉํด ๋ณด๋ ๋๋ค.
๋น๋ฐํธ์ง๋ ํ์์ ์ํฌ๊ฐ ์๋ก ์ฝ์ํ ์ํธ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๋น๋ฐํธ์ง๋ ์ํ๋ฒณ ํ ๋ฌธ์๋ง๋ค # ๋๋ *์ด ์ผ๊ณฑ ๊ฐ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๋ง์ฝ ํ์๊ฐ “#*****#”์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธ์๋ฅผ ๋ณด๋๋ค๋ฉด ์ํฌ๋ ํ์์ ์ฝ์ํ ๊ท์น๋๋ก ๋ค์๊ณผ ๊ฐ์ด ํด์ํฉ๋๋ค.
1. “#*****#”๋ฅผ ์ผ๊ณฑ์๋ฆฌ์ ์ด์ง์๋ก ๋ฐ๊ฟ๋๋ค. #์ ์ด์ง์์ 1๋ก, *์ด์ง์์ 0์ผ๋ก ๋ณํํฉ๋๋ค. ๊ฒฐ๊ณผ๋ “1000001”๋ก ๋ณํ๋ฉ๋๋ค.
2. ๋ฐ๋ 2์ง์๋ฅผ 10์ง์ํ ํฉ๋๋ค. “1000001”์ 10์ง์ํ ํ๋ฉด 65๊ฐ ๋ฉ๋๋ค.
3. ์์คํค ๋ฒํธ๊ฐ 65๋ฌธ์๋ก ๋ณํํฉ๋๋ค. ์ฆ ์์คํฌ๋ฒํธ 65๋ ๋๋ฌธ์ 'A'์ ๋๋ค.
์ฐธ๊ณ ๋ก ๋๋ฌธ์๋ค์ ์์คํค ๋ฒํธ๋ 'A'๋ 65๋ฒ, ‘B'๋ 66๋ฒ, ’C'๋ 67๋ฒ ๋ฑ ์ฐจ๋ก๋๋ก 1์ฉ ์ฆ๊ฐํ์ฌ ‘Z'๋ 90๋ฒ์ ๋๋ค.
ํ์๊ฐ 4๊ฐ์ ๋ฌธ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ํธ๋ก ๋ณด๋๋ค๋ฉด
#****###**#####**#####**##**
์ด ์ ํธ๋ฅผ 4๊ฐ์ ๋ฌธ์์ ํธ๋ก ๊ตฌ๋ถํ๋ฉด
#****## --> 'C'
#**#### --> 'O'
#**#### --> 'O'
#**##** --> 'L'
์ต์ข ์ ์ผ๋ก “COOL"๋ก ํด์๋ฉ๋๋ค.
ํ์๊ฐ ๋ณด๋ธ ์ ํธ๋ฅผ ํด์ํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด์ ์ํฌ๋ฅผ ๋์์ฃผ์ธ์.
์ ๋ ฅ
์ฒซ ์ค์๋ ๋ณด๋ธ ๋ฌธ์์ ๊ฐ์(10์ ๋์ง ์์ต๋๋ค)๊ฐ ์ ๋ ฅ๋๋ค. ๋ค์ ์ค์๋ ๋ฌธ์์ ๊ฐ์์ ์ผ๊ณฑ ๋ฐฐ ๋งํผ์ #๋๋ * ์ ํธ๊ฐ ์ ๋ ฅ๋ฉ๋๋ค.
ํ์๋ ํญ์ ๋๋ฌธ์๋ก ํด์ํ ์ ์๋ ์ ํธ๋ฅผ ๋ณด๋ธ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ถ๋ ฅ
์ํฌ๊ฐ ํด์ํ ๋ฌธ์์ด์ ์ถ๋ ฅํฉ๋๋ค.
์์ ์ ๋ ฅ 1
4
#****###**#####**#####**##**
์์ ์ถ๋ ฅ 1
COOL
๋ฌธ์ ํ์ด 1
public String solution(int num, String input) {
String answer = "";
input = input.replace("#", "1").replace("*", "0");
int cnt = input.length() / num;
int i = 0;
while (i < input.length()) {
answer += (char) Integer.parseInt(input.substring(i, i + cnt), 2);
i += cnt;
}
return answer;
}
๐ฉ๐ป๐ป : ์ด ๋ฌธ์ ๋ # ๋ 1๋ก ๋ณํํ๊ณ , * ๋ 0์ผ๋ก ๋ณํํ๊ณ 7์๋ฆฌ๋ง๋ค 2์ง์๋ฅผ 10์ง์๋ก ๋ฐ๊พผ๋ค์, ๋ฌธ์๋ก ๋ณํํ ๊ฐ์ ๋ฆฌํดํด์ฃผ๋ฉด ๋๋ค.
์ฐ์ ์ฃผ์ด์ง ๋ฌธ์์ด์ replace ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ #๊ณผ * ๋ฅผ ๊ฐ๊ฐ 1๊ณผ 0์ผ๋ก ๋์ฒดํด์ฃผ๊ณ ,
๊ทธ ๋ค์ subString์ผ๋ก ๋ฌธ์์ด์ ์ชผ๊ฐ์ ๊ทธ 7์๋ฆฌ ๋ง๋ค 2์ง์๋ฅผ 10์ง์๋ก ๋ณํํด์ฃผ๋ฉด ๋๋ค.
(๋๋ ๋ฌธ์ ๋ฅผ ์ ๋๋ก ์์ฝ์ด์.. 7์๋ฆฌ ๊ธฐ์ค์ธ์ง ๋ชจ๋ฅด๊ณ , ์ด์ฌํ input.lenght() / num ์ ํตํด์ subString ํด์ผ ํ๋ ๋ฌธ์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์ด ํฌํจ๋์ด ์๋๋ฐ ๊ทธ๋ฅ 7์๋ฆฌ๋ก ๊ณ ์ ํด์ ์๋ฅด๋ฉด ๋๋ค. ์ฆ, cnt ๋ณ์๊ฐ ํ์์๋จ ์๊ธฐ)
input.subString์ ํตํด ๋ฌธ์์ด์ ์ชผ๊ฐ ๋ค์, 2์ง์๋ฅผ 10์ง์๋ก ๋ณํํด์ค์ผ ํ๋๋ฐ ์ด๋, Interger.parseInt๋ฅผ ์ด์ฉํด์ 2์ง์๋ฅผ 10์ง์๋ก ๋ณํํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ (char) ๋ก ๋ณํํด์ค ๋ค์ answer ๊ฐ์ ๋ํด์ฃผ๋ฉด ๋๋ค.
๋ฌธ์ ํ์ด 2
public String solution2(int num, String input) {
String answer = "";
for (int i = 0; i < num; i++) {
String tmpStr = input.substring(0, 7).replace("#", "1").replace("*", "0");
int tmpNum = Integer.parseInt(tmpStr, 2);
answer += (char) tmpNum;
input = input.substring(7);
}
return answer;
}
๐พ : ๊ฐ์ฌ๋์ ๋ ๊ฐ๋จํ๊ฒ ํ์๋ค. ์ฐ์ ๋ฐ๋ณต๋ฌธ์ num๋ฒ๋ง ๋๊ฒ ํ๋ค. (๋จ์ด๊ฐ 4๊ฐ๋๊น)
๊ทธ ๋ค์, input.subString์ 0๋ถํฐ 7๊น์ง ๋จผ์ ์๋ฅด๊ณ , ๊ทธ ๋ค์ # ๊ณผ * ์ ๊ฐ๊ฐ 1๊ณผ 0์ผ๋ก ๋์ฒดํด์คฌ๋ค.
๊ทธ ๋ค์, ๋์ผํ๊ฒ Integer.pasreInt๋ฅผ ํตํด 2์ง์๋ฅผ 10์ง์๋ก ๋ณํํด์ฃผ๊ณ , ๊ทธ ๊ฐ์ answer์ ์ ์ฅํด์คฌ๋ค. ์ด๋ tmpNum ๊ฐ์ ๊ทธ๋๋ก ๋ฃ์ด์ฃผ๋ฉด ์ซ์๊ฐ์ด ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ (char) ๋ก ๋ณํํด์ค์ผ ํ๋ค.
๊ทธ ๋ค์, input ๊ฐ์ 7๋ถํฐ ๋๊น์ง๋ก ๋ฐ๊ฟ์ค์ผ ๋ค์ ๋ฐ๋ณต๋ฌธ์์ ์ด์ 7์๋ฆฌ ๋ฌธ์๋ ์ ์ธํ๊ณ subString ํ ์ ์๋ค.