백준 2745 파이썬 , enumerate()

2024. 2. 12. 08:42코딩/백준 (단계별)

반응형

백준 2745 : 진법 변환

문제

https://www.acmicpc.net/problem/2745

 

2745번: 진법 변환

B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 

www.acmicpc.net

 

2745번

 

답안 코드 :

N, b = input().split()
num = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

N = N[::-1]  # N을 역순으로 바꿔줍니다.
result = 0

# N의 각 자리 숫자와 인덱스를 이용하여 결과를 계산합니다.
for i, n in enumerate(N):
    # result에 (b의 i제곱) * n에 해당하는 값을 더합니다.
    result += (int(b) ** i) * (num.index(n))
print(result)

 

백준 / 문제 / 단계별로 풀어보기 / 8단계 일반 수학 1

 

생각 :

# enumerate(N)은 주어진 iterable(여기서는 문자열 N)의 각 요소에 대해 인덱스와 값을 반환하는 파이썬 내장 함수입니다.

for i, n in enumerate(N):
    # i는 현재 요소의 인덱스, n은 현재 요소의 값
    # 이 부분에서 i는 N의 각 자리 숫자의 위치(인덱스), n은 해당 숫자 값
    result += (int(b) ** i) * (num.index(n))
    
# 여기서 enumerate(N)은 N의 각 자리 숫자에 대해 인덱스(i)와 값(n)을 제공합니다. 
# 즉, for 루프에서 i는 현재 숫자의 위치(인덱스), n은 해당 숫자의 값이 됩니다. 
# 이를 통해 코드는 N의 각 자리 숫자에 대해 적절한 계산을 수행하고 결과를 계산합니다.
반응형

'코딩 > 백준 (단계별)' 카테고리의 다른 글

백준 2720 파이썬 , 그리디 알고리즘  (31) 2024.02.14
백준 11005 파이썬  (33) 2024.02.13
백준 10798 파이썬  (39) 2024.02.11
백준 2566 파이썬  (47) 2024.02.10
백준 2738 파이썬  (39) 2024.02.09