※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 2757번 문제인 엑셀이다.
문제는 아래 링크를 확인하자.

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

 

2757번: 엑셀

입력은 여러 줄이며, RnCm형태이다. n은 행 번호 (1<=n<=300000000), m은 열 번호 (1<=m<=300000000) 이다. 입력의 마지막은 n과 m이 모두 0이며, 이때는 출력하지 않고 프로그램을 종료하면 된다.

www.acmicpc.net

각 테스트케이스마다 문자열을 읽어들여 행 수와 열 수를 각각 읽고 열 번호를 문제에서 주어진 양식에 맞춰 출력해 문제를 해결하자.

 

각 열 번호를 주어진 양식으로 바꾸는 방법은 아래의 코드를 참고하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
#include <vector>
using namespace std;

string s;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> s;
	while (s != "R0C0") {
		int cidx = 0;
		while (s[cidx] != 'C') cidx++;
		int R = stoi(s.substr(1, cidx - 1)), C = stoi(s.substr(cidx + 1, s.length() - cidx - 1));
		
		vector<char> ans;
		while (C) {
			C--;
			ans.emplace_back(C % 26 + 'A');
			C /= 26;
		}
		while (!ans.empty()) {
			cout << ans.back();
			ans.pop_back();
		}
		cout << R << '\n';
		cin >> s;
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 5341 // C++] Pyramids  (0) 2022.12.18
[BOJ 10189 // C++] Hook  (0) 2022.12.18
[BOJ 15724 // C++] 주지수  (0) 2022.12.17
[BOJ 24448 // C++] 図書館 2 (Library 2)  (0) 2022.12.17
[BOJ 2756 // C++] 다트  (1) 2022.12.17

+ Recent posts