본문 바로가기
PS/BOJ

백준 2757 자바 - 액셀 (BOJ 2757 JAVA)

by Nahwasa 2021. 12. 28.

문제 : boj2757

 

 

  R값은 그냥 그대로 출력하면 된다. C값의 경우, 10진수를 26진수로 변경한다고 생각하면 좀 편하게 생각할 수 있다. C값은 뒤부터 한 자리씩 26으로 나눠보면서 맞는 문자를 매칭시키는 방식으로 찾을 수 있다.

 

 

코드 : github

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    private void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringBuilder answer = new StringBuilder();
        while (true) {
            StringTokenizer st = new StringTokenizer(br.readLine(), "RC");
            String r = st.nextToken();
            int c = Integer.parseInt(st.nextToken());

            if (r.equals("0") && c == 0) break;

            StringBuilder tmp = new StringBuilder();
            while (c > 0) {
                c--;
                tmp.append((char)('A'+c%26));
                c/=26;
            }
            answer.append(tmp.reverse()).append(r).append('\n');
        }
        System.out.print(answer);
    }

    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

댓글