[프로그래머스 Level 2, C++] 다음 큰 숫자

2022. 7. 26. 09:58·이전 게시글/공부 관련

문제 : 다음 큰 숫자


풀이 방법

2진수로 변환만 한다면 간단한 문제인데 bitset의 count 메소드를 알았다면 좋았을 것 같다 bitset의 count메소드는 1의 개수를 반환해주는데 이 문제는 1의 개수가 같아야 한다는 조건이 있으니 더 쉽게 접근 할 수 있었을 것 같다.


소스 코드

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

string toBinary(int n)
{
    string r;
    while (n != 0){
        r += ( n % 2 == 0 ? "0" : "1" );
        n /= 2;
    }
    return r;
}

int solution(int n) {			
    int answer = 0;
    string bin = toBinary(n);
    int count_1 = count(bin.begin(), bin.end(), '1');
    while(true) {
        answer = ++n;
        bin = toBinary(answer);
        if(count_1 == count(bin.begin(), bin.end(), '1')) break;
    }
    return answer;
}

 

저작자표시 (새창열림)

'이전 게시글 > 공부 관련' 카테고리의 다른 글

[프로그래머스 Level 2, C++] 124 나라의 숫자  (0) 2022.07.27
[프로그래머스 Level 2, C++] 숫자의 표현  (0) 2022.07.26
[프로그래머스 Level 2, C++] 최솟값 만들기  (0) 2022.07.14
[프로그래머스 Level 2, C++] N-Queen  (0) 2022.07.13
[프로그래머스 Level 1, C++] 신고 결과 받기  (0) 2022.07.09
'이전 게시글/공부 관련' 카테고리의 다른 글
  • [프로그래머스 Level 2, C++] 124 나라의 숫자
  • [프로그래머스 Level 2, C++] 숫자의 표현
  • [프로그래머스 Level 2, C++] 최솟값 만들기
  • [프로그래머스 Level 2, C++] N-Queen
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (276)
      • f1tenth (2)
      • 이전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    이것이자바다
    파이어베이스
    캡스톤디자인
    마인크래프트강화스크립트
    C++강좌
    마인크래프트스크립트
    빅데이터공모전
    마인크래프트
    일본규슈공업대학교
    c언어초보
    티스토리반응형2스킨편집
    안드로이드
    마크
    컨텍스트스위칭
    C언어강좌
    반복하지않는수
    콜라츠추측
    공개SW개발자대회
    이것이자바다확인문제
    백준
    프로그래머스
    프로그래머스PCCE
    스크롤바CSS
    자바
    마크스크립트
    파이썬
    티스토리스킨편집
    티스토리HTML
    C언어
    이것이자바다연습문제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
[프로그래머스 Level 2, C++] 다음 큰 숫자
상단으로

티스토리툴바