Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

코딩로그

[백준/BOJ/C++] 12778번 CTP공국으로 이민 가자 본문

YJ/C++

[백준/BOJ/C++] 12778번 CTP공국으로 이민 가자

Team DAON 2021. 11. 9. 16:34

[문제]

신생국가 CTP공국은 자신들만의 글자가 없다. CTP공국의 왕 준형이는 전 세계 표준 언어인 알파벳을 사용하기로 했다. 하지만 숫자에 미친 사람들이 모인 CTP공국 주민들은 알파벳을 사용할 때 평범한 알파벳이 아니라 쓰려고 하는 알파벳이 앞에서부터 몇 번째 알파벳인지를 의미하는 숫자로 나타낸다. 예를 들어 ‘A’는 ‘1’로, ‘Z’는 ‘26’로 나타낸다.

CTP공국은 현재 부흥 중이라 새로 국민이 되고자 하는 사람이 많다. 하지만 아무나 CTP공국의 국민이 될 수는 없는 법. CTP공국의 이민국장 인덕이는 이민 신청자들이 CTP 공국의 글자체계를 잘 알고 있는지 확인하는 시험문제를 내기로 했다.

시험문제는 두 가지 종류로 구분된다. CTP공국의 글자가 주어졌을 때 알파벳을 쓰는 문제와 알파벳이 주어졌을 때 CTP공국의 글자를 쓰는 문제 두 가지이다.

너무 많은 이민 신청자들 때문에 시험문제 채점에 골치가 아픈 인덕이를 위해 주어진 시험문제의 정답을 알려주는 프로그램을 작성하라.

[입력]

입력의 첫 줄에는 시험문제의 개수 T(1 ≤ T ≤ 50)가 주어진다.

각 시험문제의 첫 번째 줄에는 알파벳 또는 숫자의 개수 M(1 ≤ M ≤ 500) 과 문제의 종류를 나타내는 문자가 주어진다. 알파벳을 숫자로 바꾸는 문제인 경우에는 C, 숫자를 문자로 바꾸는 문제인 경우에는 N이 주어진다.

각 시험문제의 두 번째 줄에는 문제의 종류에 따라 공백을 구분으로 알파벳(A~Z,대문자) 또는 숫자(1~26, 정수)가 M개 주어진다.

[출력]

각 시험문제의 정답을 출력한다. 출력이 알파벳인 경우 대문자로 출력한다.

[Source Code]

#include <stdio.h>
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

void cton(int num){
	for(int i = 0; i < num; i++){
		char input;
		cin >> input;

		cout << (int)input - 64;

		if(i != num - 1)
			cout << " ";
		else
			cout << "\n";
	}
}

void ntoc(int num){
	for(int i = 0; i < num; i++){
		int input;
		cin >> input;
		cout << (char)(input+64);
		if(i == num - 1)
			cout << "\n";
		else
			cout << " ";
	}
}

int main() {
	int test;
	cin >> test;

	for(int i = 0; i < test; i++){
		int num;
		string change;
		cin >> num >> change;

		if(change == "C")
			cton(num);
		else if(change == "N")
			ntoc(num);
	}
}

[결과 화면]

'YJ > C++' 카테고리의 다른 글

[백준/BOJ/C++] 5354번 J박스  (0) 2021.11.09
[백준/BOJ/C++] 7567번 그릇  (0) 2021.11.09
[백준/BOJ/C++] 4592번 중복을 없애자  (0) 2021.11.09
[백준/BOJ/C++] 5635번 생일  (0) 2021.11.09
[백준/BOJ/C++] 2525번 오븐 시계  (0) 2021.11.09