✏️ 문제풀이/백준

[백준/Java] 2745번 :: 진법 변환

bono-hye 2024. 4. 25. 21:35

🌱 풀이

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 NumberFormatException, IOException 
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		String str = st.nextToken();
		int n = Integer.parseInt(st.nextToken());
		int num = 0;		// 10진수로 바꾼 값
		int result = 0;
		
		for(int i = str.length()-1,exp = 0; i >= 0; i--,exp++)	//exp : 지수
		{
			char c = str.charAt(i);
			
			if(c >= '0' && c <= '9')
				num = c - '0';
			else
				num = c - 'A' + 10;
			
			result += num * Math.pow(n, exp);
		}
		System.out.println(result);
	}
}

💡 정리

진법 변환 문제를 코드로 풀려고 하니 좀 어려워서 종이에 쓰면서 풀었다ㅎ

지수 함수 사용해서 n^0 이런 식으로 하면 될 것 같은데 지수 함수를 까먹어서 검색의 힘을 빌려

여차저차 풀이 완료,,

아스키코드는 이제 익숙해진 것 같다!