※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 23321번 문제인 홍익 댄스파티이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/23321
23321번: 홍익 댄스파티
10년 전, 홍익대학교 학생을 위한 댄스파티가 개최되었다. 도약 준비 도약 중 착석 1 . o . 2 o w . 3 m l o 4 l n L 5 n . n 댄스파티에는 위와 같이 세 종류의 학생이 있다. 학생들은 빈자리 없이 좌우로
www.acmicpc.net
주어진 5행의 문자열의 각 열은 한 사람을 의미하고, 각 열을 각각 "서있는 사람"(도약 준비), "뛰고있는 사람"(도약 중), "앉아있는 사람"(착석)을 문자로 표현한 것으로 보면 문제의 이해에 도움이 된다.
각 열의 사람의 상태를 보고, 도약 준비인 사람은 도약 중 상태로, 도약 중인 사람은 도약 준비의 상태로 각 열의 문자들을 바꿔주는 것으로 문제를 해결할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int slen;
string s[5];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
for (int r = 0; r < 5; r++) cin >> s[r];
slen = s[0].length();
for (int c = 0; c < slen; c++) {
if (s[2][c] == 'm') s[0][c] = 'o', s[1][c] = 'w', s[2][c] = 'l', s[3][c] = 'n', s[4][c] = '.';
else if (s[2][c] == 'l') s[0][c] = '.', s[1][c] = 'o', s[2][c] = 'm', s[3][c] = 'l', s[4][c] = 'n';
}
for (int r = 0; r < 5; r++) cout << s[r] << '\n';
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 27219 // C++] Робинзон Крузо (0) | 2023.01.17 |
---|---|
[BOJ 27251 // C++] Звездочки (0) | 2023.01.17 |
[BOJ 3280 // C++] CARDS (0) | 2023.01.16 |
[BOJ 3276 // C++] ICONS (0) | 2023.01.16 |
[BOJ 3281 // C++] T9 (0) | 2023.01.15 |