Big Ben
Big Ben's Log
Big Ben
전체 방문자
오늘
어제
  • 전체 글 (80)
    • 파이썬 (23)
      • 파이썬 기초 (5)
      • 클래스 (6)
      • 자료구조 (4)
      • Tensorflow (3)
      • PyTorch (2)
      • konlpy (1)
      • anaconda (1)
    • 머신러닝 (3)
      • 선형회귀 (1)
      • Tree 기반 (1)
    • 딥러닝 (6)
      • NLP (2)
      • VISION (2)
      • TABULAR (0)
      • 딥러닝 서버 구축 (2)
    • 그래프 이론 (1)
      • 그래프마이닝 (1)
      • GNN (0)
    • 강화학습 (3)
      • 강화학습 기본 (3)
    • 인공지능 (5)
    • 추천시스템 (2)
      • 추천시스템 기초 (2)
    • Competitions (1)
    • 빅데이터 (8)
      • 하둡 (3)
      • 스파크 (4)
      • 클라우드 (1)
    • SQL (7)
      • MariaDB (2)
    • 논문 리뷰 (2)
    • 대학원 (0)
      • 데이터 사이언스 (0)
      • 경제학 (0)
    • 선형대수학 (7)
      • 선형대수 ICE BREAKING (1)
      • 벡터 (5)
      • 고윳값 (1)
    • 개인프로젝트 (0)
      • 포트폴리오 대시보드 + AI기반 주식 자동매매 (0)
    • 재테크 (1)
    • 자동차 (0)
    • 알고리즘 (11)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • sql
  • PYTHON
  • 파이썬기초
  • 자료구조
  • 인공지능
  • 선형대수학
  • 빅데이터
  • MariaDB
  • 선형대수
  • 데이터베이스
  • 코딩테스트
  • 딥러닝
  • mysql
  • 알고리즘
  • class
  • 프로그래머스
  • 파이썬
  • Baekjoon
  • 객체
  • 백준
  • AI
  • 코테
  • pytorch
  • 데이터
  • TensorFlow
  • 하둡
  • 프로그래밍
  • 데이터사이언스
  • 머신러닝
  • 객체지향

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Big Ben

Big Ben's Log

[백준 11005] 진법 변환 2 - 파이썬
알고리즘

[백준 11005] 진법 변환 2 - 파이썬

2024. 3. 18. 01:05
반응형

백준 11005번은 '주어진 10진법 수 N을 사용자가 지정한 진법 B로 변환하는 알고리즘'을 만드는 문제입니다.

 

원리만 이해하면 생각보다 간단하게 풀 수 있습니다.

 

간단한 예시를 통해 이해하고 답을 보겠습니다.

 

예시

10진수 10을 2진수로 변환하는 경우: N = 10, B = 2 

10진수 -> B진법 변환은 나머지를 기록해둘 필요가 있습니다.

또한 10진수 값 N 을 B로 나눴을 때 몫을 기억해둘 필요가 있습니다. 지속적으로 업데이트 해주어야 합니다.

  • 10 % 2 = 0 -->  나머지 = "0"
  • N // B : 10 // 2 = 5  --> 몫 = "5"
  • N = 5 (i.e. N = N // B)
  • 5 % 2 = 1 -->  나머지 = "1"
  • N // B: 5 // 2 = 2 --> 몫 = "2"
  • 2 % 2 = 0 --> 나머지 = "0"
  • 동일하게 마지막 N은 1이 되고, 나머지는 1이 됩니다 --> 나머지 = "1"

모든 나머지를 붙여서 이어봅시다.

위에서 부터 붙여본다면 "0101" 이 되는 것을 알 수 있는데, 역순으로 바꿔주어야 합니다. 

변환 과정에서 구한 자리수들은 역순으로 붙어졌기 때문입니다. 

 

즉 다음과 같은 코드로 정답을 도출할 수 있습니다.

if __name__ == '__main__':
    N, B = map(int, input().split())

    # string.index() gives the index location -> Z: 35 as required
    number = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    s = ''  # initialize empty string for answer notation

    while N:
        s += number[N % B]
        N //= B

    print(s[::-1])

 

 

반응형
저작자표시 (새창열림)

'알고리즘' 카테고리의 다른 글

[python] 등차수열과 등차수열의 합  (0) 2024.03.24
[백준 9506] 약수 합 - 파이썬  (0) 2024.03.18
[백준 2563번] 색종이 - 파이썬  (1) 2024.03.17
[백준 10798번] 세로 읽기 파이썬  (0) 2024.03.17
python 리스트 요소 한 줄로 한번에 출력 print(*arr)  (0) 2024.03.16
    '알고리즘' 카테고리의 다른 글
    • [python] 등차수열과 등차수열의 합
    • [백준 9506] 약수 합 - 파이썬
    • [백준 2563번] 색종이 - 파이썬
    • [백준 10798번] 세로 읽기 파이썬
    Big Ben
    Big Ben
    Data Scientist

    티스토리툴바