728x90
문제 링크 : https://www.acmicpc.net/problem/11005
목차
1 설명
2 내 코드
4 실행 결과
설명
백준 브론즈 1 문제 입니다.
내 코드
string[] input = Console.ReadLine().Split();
int n = int.Parse(input[0]);
int b = int.Parse(input[1]);
ArrayList arr = new ArrayList();
while (n > 0)
{
int temp = n % b;
n = n / b;
if (temp >= 10)
{
temp += 55;
arr.Add((char)temp);
}
else
{
arr.Add(temp);
}
}
arr.Reverse();
foreach (var a in arr)
{ Console.Write(a); }
문제 풀이 해석 내용
입력 처리
string[] input = Console.ReadLine().Split();
int n = int.Parse(input[0]); // 변환할 정수 n
int b = int.Parse(input[1]); // 변환할 진법 b
사용자가 입력한 값을 공백을 기준으로 나누어 n과 b에 각각 저장합니다.
리스트 초기화
ArrayList arr = new ArrayList();
변환된 숫자를 저장할 ArrayList를 초기화합니다.
진법 변환
while (n > 0)
{
int temp = n % b; // n을 b로 나눈 나머지를 구함
n = n / b; // n을 b로 나눈 몫으로 업데이트
if (temp >= 10)
{
temp += 55; // temp가 10 이상일 경우, ASCII 코드 변환을 위해 55를 더함
arr.Add((char)temp); // 문자로 변환하여 리스트에 추가
}
else
{
arr.Add(temp); // 숫자 그대로 리스트에 추가
}
}
while을 통해 n이 0보다 큰 동안 반복합니다. n을 b로 나누어 나머지를 구하고 몫으로 업데이트 합니다.
나머지가 10 이상일 경우, 해당 숫자를 대문자 알파벳으로 변환하여 리스트에 추가합니다.
나머지가 10 미만일 경우, 숫자를 그대로 리스트에 추가합니다.
리스트 반전
arr.Reverse();
리스트에 저장된 값들을 반전시킵니다.
위의 과정에서 가장 낮은 자리수부터 저장되기 때문입니다.
출력
foreach (var a in arr)
{ Console.Write(a); }
리스트에 저장된 값을 차례대로 출력합니다.
실행 결과
728x90
'C#' 카테고리의 다른 글
백준 C# 2292 문제 풀이 (0) | 2024.10.06 |
---|---|
백준 C# 2903 문제 풀이 (0) | 2024.10.05 |
백준 C# 2720 문제 풀이 (0) | 2024.09.30 |
백준 C# 2745 문제 풀이 (0) | 2024.09.26 |
백준 C# 1929 문제 풀이 (0) | 2024.09.26 |