11005:진법변환2

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

풀이

  1. 몇 번 나누는지 count

  2. count 만큼 배열 생성

  3. 생성한 배열에 n%b를 차례대로 저장

  4. n 은 n/b를 새로 저장

  5. n이 0보다 클때까지 3번4번을 반복 실행

  6. 값들을 저장한 배열의 값을 index 끝부터 0까지 차례대로 출력

  7. 그런데, 해당 index의 값이 10보다 큰경우는

  8. char(값+55) 로 출력

1
2
3
4
5
6
7
8
9
10
11
12
StringBuilder ans = new StringBuilder();
while (n > 0) {
int r = n % b;
if (r < 10) {
ans.append((char)(r + '0'));
} else {
ans.append((char)(r - 10 + 'A'));
}
n /= b;
}
System.out.println(ans.reverse());
}
Read more

2745:진법변환

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

틀린 풀이

  1. 수학에서 진법 변확 하는 방식으로 풀면 됨

  2. 수는 string 으로 , 진법은 int 로 입력 받음
    (string으로 받아 각 자리에 접근하고, 자릿수를 쉽게 파악하기 위해)

  3. 각 자리 수에 접근하여 int로 입력받은 수의 자릿수 제곱을 곱하여

  4. 더함

img

맞는 풀이

img

Read more