단순히 구현을 통해 구할 수 있는 문제이기도 하고 결과를 생각해서 구현할 수도 있다.
하지만 나는 시뮬레이션을 다 돌렸다.
코드
시뮬레이션을 다 하기 때문에 결과를 기준으로 코드를 짠 것보다 메모리를 더 많이 사용한다. 더 느린진 모르겠지만 아마 더 느리지 않을까..?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N1, N2, T;
array<char, 102> dir;
string s1, s2;
cin >> N1 >> N2 >> s1 >> s2 >> T;
reverse(s1.begin(), s1.end());
for (int i = 0; i < N1; ++i)
dir[i] = 'R';
for (int i = N1; i < N1 + N2; ++i)
dir[i] = 'L';
s1 += s2;
for (int i = 0; i < T; ++i)
{
array<char, 102> tmpDir = {
0,
};
for (int j = 0; j < N1 + N2 - 1; ++j)
if (dir[j] == 'R' && dir[j + 1] == 'L')
{
swap(s1[j + 1], s1[j]);
tmpDir[j + 1] = 'R', tmpDir[j] = 'L';
}
for (int k = 0; k < N1 + N2; ++k)
if (tmpDir[k] == 'L' || tmpDir[k] == 'R')
dir[k] = tmpDir[k];
}
cout << s1 << '\n';
return 0;
}
'온라인저지' 카테고리의 다른 글
[BOJ] 3055번: 탈출 (0) | 2018.07.19 |
---|---|
[BOJ] 3046번: R2 (0) | 2018.07.19 |
[BOJ] 3047번: ABC (0) | 2018.07.19 |
[BOJ] 3049번: 다각형의 대각선 (0) | 2018.07.19 |
[BOJ] 2587번: 대표값2 (0) | 2018.07.13 |
[BOJ] 2588번: 곱셈 (0) | 2018.07.13 |
댓글