주녘공부일지

[프로그래머스 C#] Lv.2 다음 큰 숫자 본문

Programmers - C#/CodingTest Lv.2

[프로그래머스 C#] Lv.2 다음 큰 숫자

주녘 2023. 12. 5. 15:51
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12911

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 정답코드 및 핵심 아이디어, 유의사항

2진수로 변환했을 때 1의 개수를 반환하는 메서드를 선언해  문제 그대로 풀이

 

주석참조

    using System;

    class Solution
    {
        public int solution(int n)
        {
            int answer = n + 1; // 초기세팅
            int count = Function(n); // n의 1의 개수

            // 1의 개수가 같아질 때까지 더해나감
            while (count != Function(answer))
                answer++;

            return answer;
        }

        // 2진수로 변환했을 때 1의 개수를 리턴하는 메서드
        public int Function(int n)
        {
            int count = 0; // n의 1의 개수

            while (n != 0)
            {
                if (n % 2 == 1)
                    count++;
                n /= 2;
            }

            return count;
        }
    }
728x90