문제 링크
풀이
A는 1, B는 2, C는 3, ..., Z는 26이다.
AA는 1*26+1 = 27, AB는 1*26+2 = 28, ..., ZZ는 26*26+26 = 702이다.
자세히 보면 26진법과 관련이 있음을 알 수 있다.
하지만 쓰이는 숫자가 0~25가 아니라 1~26인 상황인데, 이는 오프셋 1을 빼줘서 계산하면 된다.
Java 코드
더보기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(in.readLine());
StringBuilder out = new StringBuilder();
while (T-- > 0) {
int k = Integer.parseInt(in.readLine());
StringBuilder sub = new StringBuilder();
while (k > 0) {
sub.append((char)('A' + (k - 1) % 26));
k = (k - 1) / 26;
}
out.append(new StringBuffer(sub).reverse()).append('\n');
}
System.out.println(out);
}
}
'PS > boj' 카테고리의 다른 글
[BOJ] 15487 A[j]-A[i]+A[l]-A[k] (0) | 2021.02.03 |
---|---|
[BOJ] 14006 Large Ping Pong Tournament (0) | 2021.02.03 |
[BOJ] 5100 Jean and Joe’s Clothes (0) | 2021.02.02 |
[BOJ] 20743 Bus Numbers (0) | 2021.01.31 |
[BOJ] 8711 Odchudzanie (0) | 2021.01.30 |