๊ธฐ๋ก๋ฐฉ

Lv.2 : ์ ํ”„์™€ ์ˆœ๊ฐ„ ์ด๋™ ๋ณธ๋ฌธ

CodingTest/Java

Lv.2 : ์ ํ”„์™€ ์ˆœ๊ฐ„ ์ด๋™

Soom_1n 2023. 9. 14. 00:56

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

 

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

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

programmers.co.kr



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

  • 0์—์„œ n๊นŒ์ง€ ์ด๋™ํ•˜๋Š” ์ตœ์†Œ ์ ํ”„ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • ์ ํ”„ํ•˜๋ฉด ํ•œ ์นธ ์•ž์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
    • ํ…”๋ ˆํฌํŠธํ•˜๋ฉด ํ˜„์žฌ ์ธ๋ฑ์Šค์˜ 2๋ฐฐ ์ธ๋ฑ์Šค๋กœ ์ด๋™ํ•˜๊ณ , ์ ํ”„ ์ˆ˜๋Š” ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

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

  • ํ…”๋ ˆํฌํŠธ๋Š” ์ง์ˆ˜ ์ธ๋ฑ์Šค์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ , ์ ํ”„ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌด์กฐ๊ฑด ๋งŽ์ด ์“ฐ๋ฉด ์ข‹๋‹ค.
  • 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด n์œผ๋กœ ํ–ฅํ•˜๋ฉด, ์“ธ ๋ฐ ์—†๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฏ€๋กœ ํ™•์‹คํžˆ ๋„์ฐฉํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ n๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด 0์œผ๋กœ ๋๋‚˜๋„๋ก ๊ณ„์‚ฐํ•œ๋‹ค.
    • ํ˜„์žฌ ์ˆ˜๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด n/2 ์ ˆ๋ฐ˜ ์ธ๋ฑ์Šค๋กœ ์ด๋™ํ•œ๋‹ค. (ํ…”๋ ˆํฌํŠธ)
    • ํ˜„์žฌ ์ธ๋ฑ์Šค๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด -1ํ•˜๊ณ  ์ ํ”„ ์ˆ˜ ์นด์šดํŠธ๋ฅผ +1 ํ•œ๋‹ค. (์ ํ”„)

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

public class Solution {
    public int solution(int n) {
        int answer = 0;
        
        while(n > 0) {
            if(n % 2 == 0) {
                n /= 2;
            } else {
                n--;
                answer++;
            }
        }
        
        return answer;
    }
}

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

  • n์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ์ ํ”„์™€ ํ…”๋ ˆํฌํŠธ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.
  • ์ ํ”„ ์ˆ˜๋ฅผ ์นด์šดํŠธํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค.

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

public class Solution {
    public int solution(int n) {        
        return Integer.bitCount(n);
    }
}

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

  • 0๋ถ€ํ„ฐ n๊นŒ์ง€ ๊ฐ€๋Š” X2์—ฐ์‚ฐ๊ณผ +1 ์—ฐ์‚ฐ์€ 2์ง„์ˆ˜๋กœ ๋ดค์„๋Œ€ '1'์ด ์ถ”๊ฐ€๋˜๋Š” ๊ณ„์‚ฐ์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ n์˜ 2์ง„์ˆ˜์—์„œ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์ฒ˜์Œ์—” ๋‹จ์ˆœ BFSํ’€์ด ์ธ ์ค„ ์•Œ์•˜์ง€๋งŒ, ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋Š” ๋ฌธ์ œ์—ฌ์„œ ์‹œ๊ฐ„ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ์ž”๋œฉ ๋‚ฌ๋‹ค.
    • ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋ฅผ ์“ฐ๊ธฐ์—๋Š” N์ด 10์–ต๊นŒ์ง€ ๊ฐ€๋ฏ€๋กœ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ง„๋‹ค.
  • DP๋‚˜ ๊ทธ๋ฆฌ๋”” ์ ์ธ ์ ‘๊ทผ์œผ๋กœ ํšจ์œจ์ ์œผ๋กœ ํ’€์–ด์•ผ๋งŒ ํ•˜๋Š”๋ฐ, ๊ทธ๋ž˜์„œ ๊ทธ๋Ÿฐ์ง€ ๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด๊ฐ€ ์œ ์‚ฌํ•œ ๊ฒƒ ๋ฟ์ด์—ˆ๋‹ค.
    • ํŠน์ดํ•œ ๊ฑด 2์ง„๋ฒ•์„ ์ด์šฉํ•œ ํ’€์ด์ธ๋ฐ, ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๋ฉด X2์™€ +1์—ฐ์‚ฐ๋งŒ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— n์„ ๊ทธ๋ƒฅ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•ด์„œ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋ฉด ๊ทธ๊ฒŒ ๋‹ต์ด๋‹ค...
  • 2์ง„์ˆ˜ ํ’€์ด ์ฝ”๋“œ์™€ ์ฑ„์  ๊ฒฐ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.
    • 2์ง„์ˆ˜ ํ’€์ด๊ฐ€ ์ฝ”๋“œ๋Š” ์••๋„์ ์œผ๋กœ ์งง์€๋ฐ, ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋น„์Šทํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Lv.2 : N๊ฐœ์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜  (0) 2023.09.16
Lv.2 : ์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ  (0) 2023.09.14
Lv.2 : ๊ตฌ๋ช…๋ณดํŠธ  (0) 2023.09.12
Lv.2 : ์˜์–ด ๋๋ง์ž‡๊ธฐ  (0) 2023.09.12
Lv.2 : ์นดํŽซ  (0) 2023.09.12