waveofmymind
기록하는 습관
waveofmymind
전체 방문자
오늘
어제
  • 분류 전체보기 (124)
    • 📝 정리 (5)
    • 🌊TIL (9)
    • 💻CS (1)
      • 자료구조 (1)
    • 📙Language (9)
      • ☕Java (6)
      • 🤖Kotlin (3)
    • 🍃Spring (28)
    • 👨🏻‍💻알고리즘 (67)
      • 프로그래머스 (59)
      • 백준 (3)
    • 👷DevOps (4)
      • 🐳Docker (2)
      • 🤵Jenkins (1)

블로그 메뉴

  • 홈
  • Spring
  • Java
  • 알고리즘

공지사항

인기 글

태그

  • 코틀린
  • SpringAOP
  • 힙
  • 스프링 부트
  • 스택
  • 트랜잭션 전파
  • resultset
  • 챗GPT
  • chat GPT
  • Open AI
  • spring boot
  • JDBC
  • mybatis
  • BFS
  • 다이나믹 프로그래밍
  • 완전탐색
  • til
  • 통합테스트
  • spring
  • AOP
  • 스프링
  • Connection
  • sql
  • 트랜잭션
  • Spring Security
  • kotest
  • CORS
  • LeetCode
  • 스프링 시큐리티
  • kotlin

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
waveofmymind

기록하는 습관

[프로그래머스] Lv2. 다음 큰 숫자
👨🏻‍💻알고리즘/프로그래머스

[프로그래머스] Lv2. 다음 큰 숫자

2023. 3. 7. 12:52

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12911

 

프로그래머스

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

programmers.co.kr

코드

def solution(n):
    count_n = bin(n)[2:].count('1')
    tmp = n
    while True:
        tmp += 1
        if bin(tmp)[2:].count('1') == count_n:
            return tmp

풀이

  • 파이썬에서 십진수를 이진수로 변환하는 함수 bin()을 이용한다. 
  • bin()은 결과를 0bxxxxx의 형태로 반환해주므로, 슬라이싱 [2:]를 하면 0b를 자른 결과의 문자열만 얻을 수 있다.
  • 1번과 2번을 만족하는 n보다는 큰 수를 구하려면, n+1부터 탐색을 시작한다.
  • 시퀀스별로 n+1을 tmp라고 하면, tmp를 이진수로 변환해서 해당 이진수 문자열의 1의 개수를 비교해서 같으면 바로 while문을 종료한다.

'👨🏻‍💻알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] Lv2. 영어 끝말잇기  (0) 2023.03.10
[프로그래머스/Python] Lv2. 짝지어 제거하기  (0) 2023.03.07
[프로그래머스] Lv2. 덧칠하기  (0) 2023.03.07
[프로그래머스] Lv2. 최솟값 만들기  (0) 2023.02.22
[프로그래머스] Lv2. 최댓값과 최솟값  (0) 2023.02.22
    '👨🏻‍💻알고리즘/프로그래머스' 카테고리의 다른 글
    • [프로그래머스] Lv2. 영어 끝말잇기
    • [프로그래머스/Python] Lv2. 짝지어 제거하기
    • [프로그래머스] Lv2. 덧칠하기
    • [프로그래머스] Lv2. 최솟값 만들기
    waveofmymind
    waveofmymind

    티스토리툴바