์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜1. String (๋ฌธ์ž์—ด) : ์ˆซ์ž๋งŒ ์ถ”์ถœ

2023. 10. 6. 16:11ใ†์ธํ”„๋Ÿฐ/์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ : ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„

728x90

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์˜ ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90