문제 : https://www.acmicpc.net/problem/11005
문제 자체는 간단한 문제였지만, 다른 사람들의 답을 보니 기발한 것이 있어 기록한다.
(1) 내 해답 : char 배열을 하나 만들고, 나머지를 계산하여 배열에 넣은 후 역으로 출력한다.
#include <cstdio>
#include <cstring>
int main()
{
int N = 0, B = 0, i = 0;
char result[35] = {0, };
scanf("%d %d", &N, &B);
while ( N > 0 )
{
result[i] = ( N % B >= 10 ) ? ( N % B ) + 55 : ( N % B ) + 48;
N /= B;
i++;
}
for ( int i = strlen(result) - 1 ; i >= 0 ; i-- )
{
putchar(result[i]);
}
return 0;
}
(2) 다른 해답
- 나와 비슷한 방식의 해답
ans = ''
x, y = map(int, input().split())
while x:
r = x % y
if 0 <= r <= 9:
ans += str(r)
else:
ans += chr(ord('A') + r - 10)
x //= y
print(ans[::-1])
- (Python) 문자열 앞에 계속 붙여나가는 방식으로, 문자열을 뒤집는 방식을 사용하지 않고 출력
n,b=map(int,input().split())
s=""
while n:s=chr(n%b+[48,55][n%b>9])+s;n//=b
print(s)
- 재귀를 이용하여, 문자열을 뒤집는 방식을 사용하지 않고 바로 출력
#include <cstdio>
int N, X;
void DtoX(int n) {
if (n) DtoX(n / X), printf("%c", n%X > 9 ? ('A' + n%X - 10) : ('0' + n%X));
}
int main() {
scanf("%d%d", &N, &X);
DtoX(N);
}
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 2501번: 약수 구하기 (0) | 2024.03.20 |
---|---|
백준 5086번: 배수와 약수 (0) | 2024.03.15 |
백준 2903번: 중앙 이동 알고리즘 (0) | 2024.02.27 |
알고리즘에 많이 쓰이는 함수 & 라이브러리 (0) | 2023.11.09 |
알고리즘 참고 링크 (1) | 2023.11.09 |