반응형
진법 변환 문제 해결
B진법으로 표현된 수 N을 받아 10진법으로 변환하여 출력하는 프로그램을 작성합니다. B진법에서는 숫자와 알파벳 대문자를 사용하여 숫자를 표현합니다.
문제 조건
- 시간 제한: 1초
- 메모리 제한: 128MB
- 제출: 53527
- 정답: 26247
- 맞힌 사람: 22348
- 정답 비율: 48.736%
- 문제링크
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
입력
- 첫째 줄에 B진법 수 N과 진법 B가 주어집니다. (2 ≤ B ≤ 36)
출력
- B진법 수 N을 10진법으로 변환하여 출력합니다.
주요 개념
- 진법 변환: B진법에서 10진법으로 변환하는 과정을 구현합니다.
- 문자 처리: 숫자와 알파벳 대문자를 적절히 처리하여 해당 값에 맞는 10진법 수로 변환합니다.
코드 설명
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String numberInBase = sc.next(); // B진법으로 표현된 수 입력 받기
int base = sc.nextInt(); // 진법 B 입력 받기
int numberInDecimal = 0; // 10진법으로 변환된 수를 저장할 변수 초기화
// B진법 수를 10진법으로 변환
for (int i = 0; i < numberInBase.length(); i++) {
char digit = numberInBase.charAt(i); // 현재 자리의 문자
numberInDecimal *= base; // 이전까지 계산된 수를 B진법의 다음 자리로 옮김
// 숫자와 알파벳을 적절히 처리하여 10진법 수로 계산
if ('0' <= digit && digit <= '9') numberInDecimal += digit - '0'; // '0'~'9'
else numberInDecimal += 10 + digit - 'A'; // 'A'~'Z'
}
System.out.println(numberInDecimal); // 결과 출력
}
}
반응형
'알고리즘 > 완전 탐색' 카테고리의 다른 글
[백준] 분해합 (0) | 2024.04.18 |
---|---|
[백준] 주사위 (0) | 2024.04.17 |
[백준] ALPS식 투표 (0) | 2024.04.16 |
[백준] 행운의 바퀴 (0) | 2024.04.11 |
[백준] 판화 (0) | 2024.04.08 |