2023. 10. 6. 16:11ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1204
-> ์ด์ ๋ฌธ์ ํ์ด
9. ์ซ์๋ง ์ถ์ถ
์ค๋ช
๋ฌธ์์ ์ซ์๊ฐ ์์ฌ์๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ๊ทธ ์ค ์ซ์๋ง ์ถ์ถํ์ฌ ๊ทธ ์์๋๋ก ์์ฐ์๋ฅผ ๋ง๋ญ๋๋ค.
๋ง์ฝ “tge0a1h205er”์์ ์ซ์๋ง ์ถ์ถํ๋ฉด 0, 1, 2, 0, 5์ด๊ณ ์ด๊ฒ์ ์์ฐ์๋ฅผ ๋ง๋ค๋ฉด 1205์ด ๋ฉ๋๋ค.
์ถ์ถํ์ฌ ๋ง๋ค์ด์ง๋ ์์ฐ์๋ 100,000,000์ ๋์ง ์์ต๋๋ค.
์ ๋ ฅ
์ฒซ ์ค์ ์ซ์๊ฐ ์์ธ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋๋ค. ๋ฌธ์์ด์ ๊ธธ์ด๋ 100์ ๋์ง ์์ต๋๋ค.
์ถ๋ ฅ
์ฒซ ์ค์ ์์ฐ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์์ ์ ๋ ฅ 1
g0en2T0s8eSoft
์์ ์ถ๋ ฅ 1
208
๋ฌธ์ ํ์ด 1
public int solution(String input)
{
StringBuilder tmp = new StringBuilder();
char[] chars = input.toCharArray();
for (char aChar : chars)
{
if (Character.isDigit(aChar)) {
tmp.append(aChar);
}
}
return Integer.parseInt(tmp.toString());
}
๐ฉ๐ป : ์ฐ์ ๋๋ ์ด ๋ฌธ์ ๋ฅผ Character.isDigit ๋ฉ์๋๋ฅผ ์ด์ฉํด์ ์ซ์๋ง ๋ฝ์์ StringBuilder์ append ํด์ค ๋ค์, ๋ฆฌํดํ ๋๋ Integer.parseInt๋ก ๋ณํํ ๋ค์ ๋ฆฌํดํด์คฌ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋งจ ์์ ์ซ์ 0 ์ ์ซ์๋ก ๋ณํ๋๋ฉด ์ฌ๋ผ์ง๋ค.
๋ฌธ์ ํ์ด 2
public int solution2(String input)
{
int answer = 0;
for (char c : input.toCharArray())
{
if (c >= 48 && c <= 57) { // 48์ด ์์คํค๋๋ฒ๋ก '0'์ !
answer = answer * 10 + (c - 48);
}
}
return answer;
}
๐พ : ๊ฐ์ฌ๋์ด ํผ ์ฒซ๋ฒ์งธ ํ์ด ๋ฐฉ๋ฒ์ ์์คํค ๋๋ฒ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฌธ์ '0'์ ์์คํค ๋๋ฒ๋ก 48์ด๊ณ , '9'๋ 57 ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก input์ toCharArray()๋ก ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ณํํ ๋ค์, ๊ฐ ๋ฌธ์๊ฐ 48๊ณผ 57 ์ฌ์ด๋ผ๋ ๊ฒ์ ์ซ์๋ผ๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ answer * 10 + (c - 48)์ ํด์ค๋ค. ์ด๋ 10์ ๊ณฑํ๋ ์ด์ ๋ ์๋ฆฌ๊ฐ์ ํ๋์ฉ ์ฆ๊ฐํด์ผ ํ๊ธฐ ๋๋ฌธ!! ๊ทธ๋ฅ ๋ํ๋ฉด ์ซ์๋ฅผ ๋ํด๋ฒ๋ฆผ!! ๊ทธ๋ฆฌ๊ณ c- 48 ์ ํด์ฃผ๋ฉด 0 ๋ถํฐ 9์ ๊ฐ์ ๊ตฌํ ์ ์๋ค.