본문 바로가기
온라인저지

[BOJ] 3048번: 개미

by plzfday 2018. 7. 19.

3048번: 개미

단순히 구현을 통해 구할 수 있는 문제이기도 하고 결과를 생각해서 구현할 수도 있다.

하지만 나는 시뮬레이션을 다 돌렸다.

코드

시뮬레이션을 다 하기 때문에 결과를 기준으로 코드를 짠 것보다 메모리를 더 많이 사용한다. 더 느린진 모르겠지만 아마 더 느리지 않을까..?

#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

댓글