๊ธฐ๋ก๋ฐฉ

Lv.2 : ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋ณธ๋ฌธ

CodingTest/Java

Lv.2 : ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ

Soom_1n 2023. 9. 6. 09:15

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s์—์„œ 0์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ๊ฐœ์ˆ˜๋ฅผ ๋ˆ„์ ํ•œ๋‹ค.
  • 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์ƒˆ ๋ฌธ์ž์—ด s`์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ๋‹ค.
  • s`์˜ ๊ธธ์ด๋ฅผ ๋‹ค์‹œ 2์ง„์ˆ˜๋กœ ๋ฐ”๊ฟ” s๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
  • s๊ฐ€ "1"์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ณ , ๋ฐ˜๋ณต ํšŸ์ˆ˜์™€ ์ œ๊ฑฐํ•œ 0์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ ๋ฌธ์ œ ํ’€์ด ๐Ÿ”ธ

  • ๋ฌธ์ œ ๋ถ„์„์„ ๊ทธ๋Œ€๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.
  • 0์˜ ์ œ๊ฑฐ์™€ 2์ง„์ˆ˜ ๋ณ€ํ™˜์„ ํšจ์œจ์ ์œผ๋กœ ํ•ด์•ผํ•œ๋‹ค.
  • s๊ฐ€ "1"์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค, ๊ธธ์ด๊ฐ€ 1์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ํŽธํ•˜๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

class Solution {
    public int[] solution(String s) {
        int rm_cnt = 0;
        int cnt = 0;
        int len = s.length();
        
        while(len > 1) {
            s = s.replaceAll("0","");
            rm_cnt += len - s.length();
            s = Integer.toBinaryString(s.length());
            len = s.length();
            cnt++;
        }
        
        return new int[] {cnt, rm_cnt};
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • rm_cnt๊ฐ€ 0์„ ์ œ๊ฑฐํ•œ ๋ˆ„์  ํšŸ์ˆ˜, cnt๊ฐ€ ๋ณ€ํ™˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ ํšŸ์ˆ˜, len์€ ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด์ด๋‹ค.
    • s์—์„œ 0์„ ์ œ๊ฑฐํ•˜๊ณ  ์ค„์–ด๋“  ๊ธธ์ด ๋งŒํผ rm_cnt์— ๋ˆ„์ ํ•œ๋‹ค.
    •  Integer.toBinaryString() ์„ ํ†ตํ•ด 0์ด ์ œ๊ฑฐ๋œ s์˜ ๊ธธ์ด๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
    • ์ƒˆ๋กœ ์ €์žฅ๋œ s์˜ ๊ธธ์ด๋ฅผ len์— ์ €์žฅํ•œ๋‹ค.
    • ๋ฐ˜๋ณต ํšŸ์ˆ˜ cnt๋ฅผ +1 ํ•œ๋‹ค.
  • cnt์™€ rm_cnt๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๊ตฌํ˜„ ๋ฌธ์ œ์— ๊ฐ€๊นŒ์šธ ์ •๋„๋กœ ๋ฌธ์ œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์ด ํ’€์ด์™€ ์ผ์น˜ํ–ˆ๋‹ค.
  • int๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ Integer.toBinaryString()์„ ์˜ค๋žœ๋งŒ์— ์จ๋ด์„œ ๋‹ค์‹œ ์ฐพ์•„๋ณด์•„์•ผ ํ–ˆ๋‹ค.

728x90