문제
루빅스 큐브는 삼차원 퍼즐이다. 보통 루빅스 큐브는 3×3×3개의 작은 정육면체로 이루어져 있다. 퍼즐을 풀려면 각 면에 있는 아홉 개의 작은 정육면체의 색이 동일해야 한다.
큐브는 각 면을 양방향으로 90도 만큼 돌릴 수 있도록 만들어져 있다. 회전이 마친 이후에는, 다른 면을 돌릴 수 있다. 이렇게 큐브의 서로 다른 면을 돌리다 보면, 색을 섞을 수 있다.
이 문제에서는 루빅스 큐브가 모두 풀린 상태에서 시작한다. 윗 면은 흰색, 아랫 면은 노란색, 앞 면은 빨간색, 뒷 면은 오렌지색, 왼쪽 면은 초록색, 오른쪽 면은 파란색이다.
루빅스 큐브를 돌린 방법이 순서대로 주어진다. 이때, 모두 돌린 다음에 가장 윗 면의 색상을 구하는 프로그램을 작성하시오.
위의 그림은 루빅스 큐브를 푼 그림이다. 왼쪽 면은 시계방향으로 조금 돌려져 있는 상태이다.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스는 최대 100개이다. 각 테스트 케이스는 다음과 같이 구성되어져 있다.
- 첫째 줄에 큐브를 돌린 횟수 n이 주어진다. (1 ≤ n ≤ 1000)
- 둘째 줄에는 큐브를 돌린 방법이 주어진다. 각 방법은 공백으로 구분되어져 있으며, 첫 번째 문자는 돌린 면이다. U: 윗 면, D: 아랫 면, F: 앞 면, B: 뒷 면, L: 왼쪽 면, R: 오른쪽 면이다. 두 번째 문자는 돌린 방향이다. +인 경우에는 시계 방향 (그 면을 바라봤을 때가 기준), -인 경우에는 반시계 방향이다.
출력
각 테스트 케이스에 대해서 큐브를 모두 돌린 후의 윗 면의 색상을 출력한다. 첫 번째 줄에는 뒷 면과 접하는 칸의 색을 출력하고, 두 번째, 세 번째 줄은 순서대로 출력하면 된다. 흰색은 w, 노란색은 y, 빨간색은 r, 오렌지색은 o, 초록색은 g, 파란색은 b.
예제 입력 1
4
1
L-
2
F+ B+
4
U- D- L+ R+
10
L- U- L+ U- L- U- U- L+ U+ U+
예제 출력 1
rww
rww
rww
bbb
www
ggg
gwg
owr
bwb
gwo
www
rww
알고리즘 분류
- 구현
- 시뮬레이션
풀이
플래티넘이라고 쫄 필요 없이 무지성으로 시뮬레이션을 해주면 된다. 가만히 보아하니, 2×2×2 큐브라는 문제에서 보았던 것 같아서 해당 문제를 참고해서 풀었다.
여기서 1~9번을 앞면(W), 10~18번을 뒷면(O), 19~27번을 아랫면(Y), 28~36번을 왼쪽 면(G), 37~45번을 오른쪽 면(B), 46~54번을 앞면(R)로 놓고, 각 면을 회전시킬 때 해당 면뿐만 아니라 4방향으로 맞닿아 있는 칸들도 회전시켜주어야 한다.
그냥 큐브 돌리는 걸 머릿속으로 그리면서 구현하면 된다.
코드가 매우 지저분한데 코드를 더 간략하게 하기까지의 지능이 없어서 어쩔 수 없었다.
코드
#include <iostream>
#include <string>
#include <cmath>
#include <set>
#include <unordered_map>
#include <stack>
#include <queue>
#include <vector>
#include <algorithm>
#define FIRST cin.tie(NULL); cout.tie(NULL); ios::sync_with_stdio(false);
#define MAX 55
#define LL long long
#define INF 1e9
using namespace std;
int T, N;
char MAP[MAX];
void init() { // 루빅스 큐브를 풀린 상태로 초기화
for (int i = 1; i <= 9; i++) {
MAP[i] = 'w';
}
for (int i = 10; i <= 18; i++) {
MAP[i] = 'o';
}
for (int i = 19; i <= 27; i++) {
MAP[i] = 'y';
}
for (int i = 28; i <= 36; i++) {
MAP[i] = 'g';
}
for (int i = 37; i <= 45; i++) {
MAP[i] = 'b';
}
for (int i = 46; i <= 54; i++) {
MAP[i] = 'r';
}
}
void Left_Back_Rotation() { // 왼쪽 면 반 시계 방향으로 돌리기
int tmp1 = MAP[1];
int tmp2 = MAP[4];
int tmp3 = MAP[7];
MAP[1] = MAP[54];
MAP[4] = MAP[51];
MAP[7] = MAP[48];
MAP[54] = MAP[19];
MAP[51] = MAP[22];
MAP[48] = MAP[25];
MAP[19] = MAP[10];
MAP[22] = MAP[13];
MAP[25] = MAP[16];
MAP[10] = tmp1;
MAP[13] = tmp2;
MAP[16] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[30];
Tmp_MAP[0][1] = MAP[29];
Tmp_MAP[0][2] = MAP[28];
Tmp_MAP[1][0] = MAP[33];
Tmp_MAP[1][1] = MAP[32];
Tmp_MAP[1][2] = MAP[31];
Tmp_MAP[2][0] = MAP[36];
Tmp_MAP[2][1] = MAP[35];
Tmp_MAP[2][2] = MAP[34];
MAP[30] = Tmp_MAP[0][2];
MAP[29] = Tmp_MAP[1][2];
MAP[28] = Tmp_MAP[2][2];
MAP[33] = Tmp_MAP[0][1];
MAP[32] = Tmp_MAP[1][1];
MAP[31] = Tmp_MAP[2][1];
MAP[36] = Tmp_MAP[0][0];
MAP[35] = Tmp_MAP[1][0];
MAP[34] = Tmp_MAP[2][0];
}
void Left_Front_Rotation() { // 왼쪽 면 시계 방향으로 돌리기
int tmp1 = MAP[1];
int tmp2 = MAP[4];
int tmp3 = MAP[7];
MAP[1] = MAP[10];
MAP[4] = MAP[13];
MAP[7] = MAP[16];
MAP[10] = MAP[19];
MAP[13] = MAP[22];
MAP[16] = MAP[25];
MAP[19] = MAP[54];
MAP[22] = MAP[51];
MAP[25] = MAP[48];
MAP[54] = tmp1;
MAP[51] = tmp2;
MAP[48] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[30];
Tmp_MAP[0][1] = MAP[29];
Tmp_MAP[0][2] = MAP[28];
Tmp_MAP[1][0] = MAP[33];
Tmp_MAP[1][1] = MAP[32];
Tmp_MAP[1][2] = MAP[31];
Tmp_MAP[2][0] = MAP[36];
Tmp_MAP[2][1] = MAP[35];
Tmp_MAP[2][2] = MAP[34];
MAP[30] = Tmp_MAP[2][0];
MAP[29] = Tmp_MAP[1][0];
MAP[28] = Tmp_MAP[0][0];
MAP[33] = Tmp_MAP[2][1];
MAP[32] = Tmp_MAP[1][1];
MAP[31] = Tmp_MAP[0][1];
MAP[36] = Tmp_MAP[2][2];
MAP[35] = Tmp_MAP[1][2];
MAP[34] = Tmp_MAP[0][2];
}
void Right_Back_Rotation() { // 오른쪽 면 반 시계 방향으로 돌리기
int tmp1 = MAP[3];
int tmp2 = MAP[6];
int tmp3 = MAP[9];
MAP[3] = MAP[12];
MAP[6] = MAP[15];
MAP[9] = MAP[18];
MAP[12] = MAP[21];
MAP[15] = MAP[24];
MAP[18] = MAP[27];
MAP[21] = MAP[52];
MAP[24] = MAP[49];
MAP[27] = MAP[46];
MAP[52] = tmp1;
MAP[49] = tmp2;
MAP[46] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[39];
Tmp_MAP[0][1] = MAP[38];
Tmp_MAP[0][2] = MAP[37];
Tmp_MAP[1][0] = MAP[42];
Tmp_MAP[1][1] = MAP[41];
Tmp_MAP[1][2] = MAP[40];
Tmp_MAP[2][0] = MAP[45];
Tmp_MAP[2][1] = MAP[44];
Tmp_MAP[2][2] = MAP[43];
MAP[39] = Tmp_MAP[0][2];
MAP[38] = Tmp_MAP[1][2];
MAP[37] = Tmp_MAP[2][2];
MAP[42] = Tmp_MAP[0][1];
MAP[41] = Tmp_MAP[1][1];
MAP[40] = Tmp_MAP[2][1];
MAP[45] = Tmp_MAP[0][0];
MAP[44] = Tmp_MAP[1][0];
MAP[43] = Tmp_MAP[2][0];
}
void Right_Front_Rotation() { // 오른쪽 면 시계 방향으로 돌리기
int tmp1 = MAP[3];
int tmp2 = MAP[6];
int tmp3 = MAP[9];
MAP[3] = MAP[52];
MAP[6] = MAP[49];
MAP[9] = MAP[46];
MAP[52] = MAP[21];
MAP[49] = MAP[24];
MAP[46] = MAP[27];
MAP[21] = MAP[12];
MAP[24] = MAP[15];
MAP[27] = MAP[18];
MAP[12] = tmp1;
MAP[15] = tmp2;
MAP[18] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[39];
Tmp_MAP[0][1] = MAP[38];
Tmp_MAP[0][2] = MAP[37];
Tmp_MAP[1][0] = MAP[42];
Tmp_MAP[1][1] = MAP[41];
Tmp_MAP[1][2] = MAP[40];
Tmp_MAP[2][0] = MAP[45];
Tmp_MAP[2][1] = MAP[44];
Tmp_MAP[2][2] = MAP[43];
MAP[39] = Tmp_MAP[2][0];
MAP[38] = Tmp_MAP[1][0];
MAP[37] = Tmp_MAP[0][0];
MAP[42] = Tmp_MAP[2][1];
MAP[41] = Tmp_MAP[1][1];
MAP[40] = Tmp_MAP[0][1];
MAP[45] = Tmp_MAP[2][2];
MAP[44] = Tmp_MAP[1][2];
MAP[43] = Tmp_MAP[0][2];
}
void Front_Counter_Clock_Rotation() { // 앞 면 반 시계 방향으로 돌리기
int tmp1 = MAP[1];
int tmp2 = MAP[2];
int tmp3 = MAP[3];
MAP[1] = MAP[39];
MAP[2] = MAP[42];
MAP[3] = MAP[45];
MAP[39] = MAP[27];
MAP[42] = MAP[26];
MAP[45] = MAP[25];
MAP[27] = MAP[34];
MAP[26] = MAP[31];
MAP[25] = MAP[28];
MAP[34] = tmp1;
MAP[31] = tmp2;
MAP[28] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[48];
Tmp_MAP[0][1] = MAP[47];
Tmp_MAP[0][2] = MAP[46];
Tmp_MAP[1][0] = MAP[51];
Tmp_MAP[1][1] = MAP[50];
Tmp_MAP[1][2] = MAP[49];
Tmp_MAP[2][0] = MAP[54];
Tmp_MAP[2][1] = MAP[53];
Tmp_MAP[2][2] = MAP[52];
MAP[48] = Tmp_MAP[0][2];
MAP[47] = Tmp_MAP[1][2];
MAP[46] = Tmp_MAP[2][2];
MAP[51] = Tmp_MAP[0][1];
MAP[50] = Tmp_MAP[1][1];
MAP[49] = Tmp_MAP[2][1];
MAP[54] = Tmp_MAP[0][0];
MAP[53] = Tmp_MAP[1][0];
MAP[52] = Tmp_MAP[2][0];
}
void Front_Clock_Rotation() { // 앞 면 시계 방향으로 돌리기
int tmp1 = MAP[1];
int tmp2 = MAP[2];
int tmp3 = MAP[3];
MAP[1] = MAP[34];
MAP[2] = MAP[31];
MAP[3] = MAP[28];
MAP[34] = MAP[27];
MAP[31] = MAP[26];
MAP[28] = MAP[25];
MAP[27] = MAP[39];
MAP[26] = MAP[42];
MAP[25] = MAP[45];
MAP[39] = tmp1;
MAP[42] = tmp2;
MAP[45] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[48];
Tmp_MAP[0][1] = MAP[47];
Tmp_MAP[0][2] = MAP[46];
Tmp_MAP[1][0] = MAP[51];
Tmp_MAP[1][1] = MAP[50];
Tmp_MAP[1][2] = MAP[49];
Tmp_MAP[2][0] = MAP[54];
Tmp_MAP[2][1] = MAP[53];
Tmp_MAP[2][2] = MAP[52];
MAP[48] = Tmp_MAP[2][0];
MAP[47] = Tmp_MAP[1][0];
MAP[46] = Tmp_MAP[0][0];
MAP[51] = Tmp_MAP[2][1];
MAP[50] = Tmp_MAP[1][1];
MAP[49] = Tmp_MAP[0][1];
MAP[54] = Tmp_MAP[2][2];
MAP[53] = Tmp_MAP[1][2];
MAP[52] = Tmp_MAP[0][2];
}
void Back_Counter_Clock_Rotation() { // 뒷 면 반 시계 방향으로 돌리기
int tmp1 = MAP[9];
int tmp2 = MAP[8];
int tmp3 = MAP[7];
MAP[9] = MAP[30];
MAP[8] = MAP[33];
MAP[7] = MAP[36];
MAP[30] = MAP[19];
MAP[33] = MAP[20];
MAP[36] = MAP[21];
MAP[19] = MAP[43];
MAP[20] = MAP[40];
MAP[21] = MAP[37];
MAP[43] = tmp1;
MAP[40] = tmp2;
MAP[37] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[12];
Tmp_MAP[0][1] = MAP[11];
Tmp_MAP[0][2] = MAP[10];
Tmp_MAP[1][0] = MAP[15];
Tmp_MAP[1][1] = MAP[14];
Tmp_MAP[1][2] = MAP[13];
Tmp_MAP[2][0] = MAP[18];
Tmp_MAP[2][1] = MAP[17];
Tmp_MAP[2][2] = MAP[16];
MAP[12] = Tmp_MAP[0][2];
MAP[11] = Tmp_MAP[1][2];
MAP[10] = Tmp_MAP[2][2];
MAP[15] = Tmp_MAP[0][1];
MAP[14] = Tmp_MAP[1][1];
MAP[13] = Tmp_MAP[2][1];
MAP[18] = Tmp_MAP[0][0];
MAP[17] = Tmp_MAP[1][0];
MAP[16] = Tmp_MAP[2][0];
}
void Back_Clock_Rotation() { // 뒷 면 시계 방향으로 돌리기
int tmp1 = MAP[9];
int tmp2 = MAP[8];
int tmp3 = MAP[7];
MAP[9] = MAP[43];
MAP[8] = MAP[40];
MAP[7] = MAP[37];
MAP[43] = MAP[19];
MAP[40] = MAP[20];
MAP[37] = MAP[21];
MAP[19] = MAP[30];
MAP[20] = MAP[33];
MAP[21] = MAP[36];
MAP[30] = tmp1;
MAP[33] = tmp2;
MAP[36] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[12];
Tmp_MAP[0][1] = MAP[11];
Tmp_MAP[0][2] = MAP[10];
Tmp_MAP[1][0] = MAP[15];
Tmp_MAP[1][1] = MAP[14];
Tmp_MAP[1][2] = MAP[13];
Tmp_MAP[2][0] = MAP[18];
Tmp_MAP[2][1] = MAP[17];
Tmp_MAP[2][2] = MAP[16];
MAP[12] = Tmp_MAP[2][0];
MAP[11] = Tmp_MAP[1][0];
MAP[10] = Tmp_MAP[0][0];
MAP[15] = Tmp_MAP[2][1];
MAP[14] = Tmp_MAP[1][1];
MAP[13] = Tmp_MAP[0][1];
MAP[18] = Tmp_MAP[2][2];
MAP[17] = Tmp_MAP[1][2];
MAP[16] = Tmp_MAP[0][2];
}
void Up_Counter_Clock_Rotation() { // 윗 면 반 시계 방향으로 돌리기
int tmp1 = MAP[10];
int tmp2 = MAP[11];
int tmp3 = MAP[12];
MAP[10] = MAP[37];
MAP[11] = MAP[38];
MAP[12] = MAP[39];
MAP[37] = MAP[46];
MAP[38] = MAP[47];
MAP[39] = MAP[48];
MAP[46] = MAP[28];
MAP[47] = MAP[29];
MAP[48] = MAP[30];
MAP[28] = tmp1;
MAP[29] = tmp2;
MAP[30] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[7];
Tmp_MAP[0][1] = MAP[8];
Tmp_MAP[0][2] = MAP[9];
Tmp_MAP[1][0] = MAP[4];
Tmp_MAP[1][1] = MAP[5];
Tmp_MAP[1][2] = MAP[6];
Tmp_MAP[2][0] = MAP[1];
Tmp_MAP[2][1] = MAP[2];
Tmp_MAP[2][2] = MAP[3];
MAP[7] = Tmp_MAP[0][2];
MAP[8] = Tmp_MAP[1][2];
MAP[9] = Tmp_MAP[2][2];
MAP[4] = Tmp_MAP[0][1];
MAP[5] = Tmp_MAP[1][1];
MAP[6] = Tmp_MAP[2][1];
MAP[1] = Tmp_MAP[0][0];
MAP[2] = Tmp_MAP[1][0];
MAP[3] = Tmp_MAP[2][0];
}
void Up_Clock_Rotation() { // 윗 면 시계 방향으로 돌리기
int tmp1 = MAP[10];
int tmp2 = MAP[11];
int tmp3 = MAP[12];
MAP[10] = MAP[28];
MAP[11] = MAP[29];
MAP[12] = MAP[30];
MAP[28] = MAP[46];
MAP[29] = MAP[47];
MAP[30] = MAP[48];
MAP[46] = MAP[37];
MAP[47] = MAP[38];
MAP[48] = MAP[39];
MAP[37] = tmp1;
MAP[38] = tmp2;
MAP[39] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[7];
Tmp_MAP[0][1] = MAP[8];
Tmp_MAP[0][2] = MAP[9];
Tmp_MAP[1][0] = MAP[4];
Tmp_MAP[1][1] = MAP[5];
Tmp_MAP[1][2] = MAP[6];
Tmp_MAP[2][0] = MAP[1];
Tmp_MAP[2][1] = MAP[2];
Tmp_MAP[2][2] = MAP[3];
MAP[7] = Tmp_MAP[2][0];
MAP[8] = Tmp_MAP[1][0];
MAP[9] = Tmp_MAP[0][0];
MAP[4] = Tmp_MAP[2][1];
MAP[5] = Tmp_MAP[1][1];
MAP[6] = Tmp_MAP[0][1];
MAP[1] = Tmp_MAP[2][2];
MAP[2] = Tmp_MAP[1][2];
MAP[3] = Tmp_MAP[0][2];
}
void Down_Counter_Clock_Rotation() { // 아랫 면 반 시계 방향으로 돌리기
int tmp1 = MAP[16];
int tmp2 = MAP[17];
int tmp3 = MAP[18];
MAP[16] = MAP[34];
MAP[17] = MAP[35];
MAP[18] = MAP[36];
MAP[34] = MAP[52];
MAP[35] = MAP[53];
MAP[36] = MAP[54];
MAP[52] = MAP[43];
MAP[53] = MAP[44];
MAP[54] = MAP[45];
MAP[43] = tmp1;
MAP[44] = tmp2;
MAP[45] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[21];
Tmp_MAP[0][1] = MAP[20];
Tmp_MAP[0][2] = MAP[19];
Tmp_MAP[1][0] = MAP[24];
Tmp_MAP[1][1] = MAP[23];
Tmp_MAP[1][2] = MAP[22];
Tmp_MAP[2][0] = MAP[27];
Tmp_MAP[2][1] = MAP[26];
Tmp_MAP[2][2] = MAP[25];
MAP[21] = Tmp_MAP[0][2];
MAP[20] = Tmp_MAP[1][2];
MAP[19] = Tmp_MAP[2][2];
MAP[24] = Tmp_MAP[0][1];
MAP[23] = Tmp_MAP[1][1];
MAP[22] = Tmp_MAP[2][1];
MAP[27] = Tmp_MAP[0][0];
MAP[26] = Tmp_MAP[1][0];
MAP[25] = Tmp_MAP[2][0];
}
void Down_Clock_Rotation() { // 아랫 면 시계 방향으로 돌리기
int tmp1 = MAP[16];
int tmp2 = MAP[17];
int tmp3 = MAP[18];
MAP[16] = MAP[43];
MAP[17] = MAP[44];
MAP[18] = MAP[45];
MAP[43] = MAP[52];
MAP[44] = MAP[53];
MAP[45] = MAP[54];
MAP[52] = MAP[34];
MAP[53] = MAP[35];
MAP[54] = MAP[36];
MAP[34] = tmp1;
MAP[35] = tmp2;
MAP[36] = tmp3;
int Tmp_MAP[3][3];
Tmp_MAP[0][0] = MAP[21];
Tmp_MAP[0][1] = MAP[20];
Tmp_MAP[0][2] = MAP[19];
Tmp_MAP[1][0] = MAP[24];
Tmp_MAP[1][1] = MAP[23];
Tmp_MAP[1][2] = MAP[22];
Tmp_MAP[2][0] = MAP[27];
Tmp_MAP[2][1] = MAP[26];
Tmp_MAP[2][2] = MAP[25];
MAP[21] = Tmp_MAP[2][0];
MAP[20] = Tmp_MAP[1][0];
MAP[19] = Tmp_MAP[0][0];
MAP[24] = Tmp_MAP[2][1];
MAP[23] = Tmp_MAP[1][1];
MAP[22] = Tmp_MAP[0][1];
MAP[27] = Tmp_MAP[2][2];
MAP[26] = Tmp_MAP[1][2];
MAP[25] = Tmp_MAP[0][2];
}
int main() {
FIRST
cin >> T;
while (T--) {
init();
cin >> N;
for (int i = 0; i < N; i++) {
string S;
cin >> S;
if (S == "U-") {
Up_Counter_Clock_Rotation();
}
else if (S == "U+") {
Up_Clock_Rotation();
}
else if (S == "D-") {
Down_Counter_Clock_Rotation();
}
else if (S == "D+") {
Down_Clock_Rotation();
}
else if (S == "F-") {
Front_Counter_Clock_Rotation();
}
else if (S == "F+") {
Front_Clock_Rotation();
}
else if (S == "B-") {
Back_Counter_Clock_Rotation();
}
else if (S == "B+") {
Back_Clock_Rotation();
}
else if (S == "L-") {
Left_Back_Rotation();
}
else if (S == "L+") {
Left_Front_Rotation();
}
else if (S == "R-") {
Right_Back_Rotation();
}
else if (S == "R+") {
Right_Front_Rotation();
}
}
// 앞면 출력. 7, 8, 9번 쪽이 뒷면과 맞닿아 있으므로 7, 8, 9번 칸부터 출력
cout << MAP[7] << MAP[8] << MAP[9] << "\n";
cout << MAP[4] << MAP[5] << MAP[6] << "\n";
cout << MAP[1] << MAP[2] << MAP[3] << "\n";
};
return 0;
}
'BOJ > Platinum ~ Diamond' 카테고리의 다른 글
[BOJ/Platinum 5] 백준 2642 전개도(C++) (0) | 2022.01.26 |
---|---|
[BOJ/Platinum 4] 백준 3025 돌 던지기(C++) (0) | 2022.01.26 |
[BOJ/Platinum 5] 백준 19541 역학 조사(C++) (0) | 2022.01.25 |
[BOJ/Platinum 5] 백준 17470 배열 돌리기 5(C++) (0) | 2022.01.24 |
[BOJ/Platinum 5] 백준 23289 온풍기 안녕!(C++) (0) | 2022.01.21 |