목차
백준 단계별로 풀어보기
25.09.04
8단계: 수학 1
2745번: 진법 변환
문제 링크 : https://www.acmicpc.net/problem/2745
문제 풀이
>> 문제를 풀기 위해 알아야 할 개념
- 10진법의 의미
: 한 자리에 0부터 9까지의 숫자가 표현되며, 한 자리의 수가 10이 될 때마다 자리올림이 발생한다.
→ 예시

- x진법을 10진법으로 변환하는 방법
: x진법 수의 각 자리 숫자에 현재 자리의 위치만큼 x를 거듭제곱한 수를 곱한 뒤, 모두 더해주면 된다.
→ 예시

※ 참고한 블로그
진법의 의미, 그리고 2진법, 8진법, 16진법, 10진법 변환 원리와 방법
진법(위치값 기수법)의 의미, 그리고 2진법, 8진법, 16진법, 10진법 변환 원리와 방법 목차1. 진법이란2. x진법(2진법, 8진법, 16진법, 10진법)3. 진법 간 변환 원리, 방법x진수 → 10진수10진수 →
dlxdlx.tistory.com
- MathF.Pow(float f, float p)
: f의 p제곱을 구해주는 함수
--> 예시
MathF.Pow(3, 2) == 9
MathF.Pow(3, 1) == 3
※ 참고 링크
- 공식 문서 : MathF.Pow()
MathF.Pow(Single, Single) 메서드 (System)
지정된 전원에 대해 발생한 지정된 숫자를 반환합니다.
learn.microsoft.com
- 블로그
[C#] 알아두면 유용한 자주 쓰는 Mathf 함수 모음
Mathf.Abs(float f); f의 절대값을 반환해주는 함수 -> ex) 음수나 양수가 모두 들어와도 양수로 값을...
blog.naver.com
- 아스키 코드 표

>> 풀이
- B진법 수, N에 대해 N과 B를 나눠서 입력 받은 뒤, N을 string으로, B를 int로 변수를 만들어 저장한다. 그리고 결과를 출력할 변수를 만든다.
- N의 자릿수만큼 반복문을 실행하는데, 우선 각 자릿수에 맞는 숫자로 변환해준다.
- 값만 따로 받아줄 임시 변수를 선언한다.
- 값이 0~9 라면 바로 int값으로 변환하여 임시 변수에 담는다.
- 값이 A~Z 라면 아스키코드에 따라 55만큼 빼주면 10~35가 되기 때문에 55를 빼서 임시 변수에 담는다.
- 변환한 값을 10진수로 바꿔서 결과값에 더하는 것을 반복 횟수만큼 반복한다.
- 결과값을 출력한다.
정답 코드
class Backjoon
{
static void Main(string[] args)
{
string[] input = Console.ReadLine().Split();
string arr = input[0];
int formation = int.Parse(input[1]);
int result = 0;
for (int i = 0; i < arr.Length; i++)
{
int temp = 0;
if (arr[i] >= 'A' && arr[i] <= 'Z')
{
temp = arr[i] - 55;
}
else
{
temp = int.Parse(arr[i].ToString());
}
result += temp * (int)MathF.Pow(formation, arr.Length - 1 - i);
}
Console.Write(result);
}
}'Development > Baekjoon' 카테고리의 다른 글
| [C#] 2720번: 세탁소 사장 동혁 (0) | 2025.09.08 |
|---|---|
| [C#] 11005번: 진법 변환 2 (0) | 2025.09.06 |
| [C#] 2563번: 색종이 (0) | 2025.09.03 |
| [C#] 10798번: 세로읽기 (0) | 2025.09.02 |
| [C#] 2566번: 최댓값 (4) | 2025.08.29 |