[백준/JAVA]2745번 진법 변환

2025. 1. 24. 15:42·코딩테스트/백준

문제

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

B진법 수를 10진수로 변환하는 문제였다.

문제 풀이

1. 수동으로 진법 변환

이 문제는 주어진 문자열을 10진법으로 변환하는 문제이다. 첫 번째 풀이에서는 문자열을 뒤에서부터 처리하여 각 자리수에 대해 진법에 맞는 가중치를 곱해 누적하는 방식으로 문제를 풀었다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer t=new StringTokenizer(br.readLine()," ");
		String N=t.nextToken();
		int B=Integer.parseInt(t.nextToken());
		int result=0;
		int count=0; //인수
		
		for(int i=N.length()-1;i>=0;i--) {
			int c=N.charAt(i);
			if(c>='A' && c<='Z') {
				c=c-'A'+10;
			}else {
				c=c-'0';
			}
			result+=c*(int)Math.pow(B,count);
			count++;
		}
		
		System.out.print(result);
	}
}

2. Integer.parseInt() 활용

Integer.parseInt(String s, int radix) 메서드를 사용해서 간단하게 풀 수도 있다. 이 메서드는 보통 문자열을 정수로 변환하는 메서드인데 두 번째 인자로 주어진 진법으로 해석하여 첫 번째 인자인 문자열을 10진법 정수로 변환하는 기능도 가지고 있다.

import java.io.*;
import java.util.*;
public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer t=new StringTokenizer(br.readLine()," ");
		String N=t.nextToken();
		int B=Integer.parseInt(t.nextToken());
		int result=Integer.parseInt(N,B); //B진법의 문자열 N을 10진법 정수로 변환
		System.out.print(result);
	}
}

'코딩테스트 > 백준' 카테고리의 다른 글

[백준/JAVA]2720번 세탁소 사장 동혁  (0) 2025.03.20
[백준/JAVA]11005번 진법 변환 2  (0) 2025.03.19
[백준/JAVA]2563번 색종이  (0) 2025.01.24
[백준/JAVA]10798번 세로읽기  (0) 2025.01.24
[백준/JAVA]2566번 최댓값  (0) 2025.01.23
'코딩테스트/백준' 카테고리의 다른 글
  • [백준/JAVA]2720번 세탁소 사장 동혁
  • [백준/JAVA]11005번 진법 변환 2
  • [백준/JAVA]2563번 색종이
  • [백준/JAVA]10798번 세로읽기
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[백준/JAVA]2745번 진법 변환
상단으로

티스토리툴바