본문 바로가기

PS/boj

[BOJ] 16265 Spreadsheets

문제 링크

www.acmicpc.net/problem/16265

풀이

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