시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 1024 MB | 392 | 153 | 83 | 32.422% |
이상한 청소기를 만드는 회사 사장 실버가 새로운 청소기 모델 Silver-16 을 발표했다! 이 청소기는 정사각형 타일이 깔린 바닥을 청소한다. Silver-16 에는 Silver++
이라는 특별한 언어의 컴파일러가 내장되어 있어, 사용자가 프로그램을 입력해놓으면 자동으로 청소를 진행한다. Silver++
의 프로그램은 하나의 문자열로 나타낼 수 있는데, 문자열의 맨 앞에서부터 하나씩 문자를 읽으며 해당 문자에 대응되는 동작을 수행한다. 모든 동작을 마치면 청소기는 자동으로 꺼진다. 문자열에 쓰일 수 있는 9개의 문자와 그 문자들의 동작 명세는 다음과 같다.
F
: 현재 있는 칸의 먼지를 흡수한다. 하지만 약간의 버그가 있어서, 먼지가 없었다면 먼지를 방출하여 그 칸에는 먼지가 생긴다. 다시 말하면, 현재 있는 칸의 먼지 존재 여부 상태를 바꾼다.U, D, L, R
: 각각 위쪽, 아래쪽, 왼쪽, 오른쪽으로 한 칸 이동한다. 만약 판의 끝에 도달하여 해당 방향으로 움직일 수 없다면, 움직이지 않는다.u, d, l, r
: 현재 있는 칸에 먼지가 없으면, 각각 위쪽, 아래쪽, 왼쪽, 오른쪽으로 한 칸 이동한다. 현재 칸에 먼지가 있다면 움직이지 않는다. 마찬가지로 해당 방향으로 움직일 수 없다면 움직이지 않는다.하지만 어려운 동작 방법 때문에 Silver-16 을 사는 고객은 아무도 없었다. 실버는 의견 게시판을 확인하던 중 흥미로운 글을 발견했다.
방을 깨끗하게 청소할 수 있는 프로그램을 내장해둔다면 많은 사람이 쉽게 사용할 수 있을 겁니다. 제 방은 16×16 격자로 되어 있습니다. 처음에 방의 상태가 어떻게 되어 있든, 방에 먼지가 없도록 하는 프로그램을 만들어주시면 좋을 것 같습니다.
조금 생각을 해보니, 청소기의 버그 때문에 어떻게 프로그램을 만들더라도 먼지가 있는 칸의 개수의 홀짝성 문제 때문에 먼지가 하나는 남게 될 것 같습니다. 하지만 안 보이면 그만 아닙니까? 먼지가 있을 수 있는 그 칸에 청소기가 멈추도록 할 수는 있을 것 같네요.
정말 그게 가능할까요? 사장님 답해주세요!
문제 상황을 정확하게 설명하자면 다음과 같다.
실버를 도와 프로그램을 작성해보자! 단, 프로그램의 길이는 800 이하여야 한다.
입력은 없다.
첫 번째 줄에 프로그램을 출력한다.
RlFUdFl
예제는 문제의 정답이 아니다.
다음은 2×2 격자에서 RlFUdFl
을 여러 초기 격자 상태에서 순서대로 실행한 결과의 예시다. 주황색 칸에 먼지가 있으며, 현재 청소기가 있는 칸은 검은 원으로 표시했다.
위 두 경우 모두 청소기의 위치를 제외한 모든 칸에 먼지가 없으므로 성공이다. 여러분의 프로그램은 16×16 격자의 모든 초기 상태에 대해 성공해야 한다.
Contest > BOJ User Contest > 실버컵 > 제1회 실버컵 C번
Text