아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

jfen

면접 대비

시간 제한8초메모리 제한512 MB

요약
jfen 표기법으로 주어진 보드와 이동 명령이 주어질 때, 공을 옮긴 뒤 보드를 다시 jfen 표기법으로 출력한다.
난이도

보통10점 중 4점

유형
문자열, 구현, 시뮬레이션, 행렬
정답자
아직 제출이 없습니다

문제

H × W 크기의 판에서 즐기는 혼자 하는 게임이 있다. 이 게임은 각 칸에 0개 또는 1개의 공이 있고, 그 공을 옮기는 게임이다. 당신은 이 게임을 하다가 공이 너무 둥글어서 칸에서 칸으로 공을 정확히 옮기기 어렵다는 것을 깨달았다. 그래서 당신은 명령대로 공을 움직여 주는 로봇을 만들기로 했다. 칸을 나타내는 표기로 (y, x)를 사용한다. 이는 y번째 행, x번째 열의 칸을 나타낸다.

로봇에 대한 명령은 4개의 정수 a, b, c, d로 주어진다. 이는 (a, b)에 있는 공을 (c, d)로 옮기는 것을 나타낸다. 이때 (a, b)에는 공이 있고, (c, d)에는 공이 없음이 보장된다.

판의 상태는 "jfen"이라는 다음 표기법으로 나타낸다.

[1행 데이터]/[2행 데이터]/.../[H행 데이터]

이 표기법은 판의 각 행을 나타내는 데이터를 슬래시로 구분해 이어 붙인 것이다. 각 행의 데이터는 문자열로 나타내며, 1열부터 W열까지의 칸 상태를 왼쪽부터 차례로 기술한다. 이 문자열은 숫자와 문자 'b'로 이루어지고, 숫자가 나타내는 정수는 연속한 빈 칸의 수를, 'b'는 공이 있는 칸을 나타낸다. 각 행의 데이터에서 정수는 연속해서 나올 수 없다. 또한 각 행의 데이터에 적힌 정수의 합과 'b'의 개수의 합은 반드시 W이다.

예를 들어 다음과 같은 판 상태를 생각하자. 빈 칸을 '.'로, 공이 있는 칸을 'b'로 나타내었다. 이 예에서 i행의 왼쪽에서 j번째 문자는 판의 i행 j열 칸의 상태를 나타낸다.

....
.b.b
....

위 판을 jfen으로 표기하면 다음과 같다.

4/1b1b/4

로봇에 현재 판 상태와 공 하나를 옮기는 명령을 주었을 때, 로봇이 공을 옮긴 후의 판을 출력하는 프로그램을 작성하시오. 이때 출력하는 판은 jfen 표기법으로 출력하시오.

입력

입력은 여러 데이터 세트로 이루어진다. 각 데이터 세트는 다음 형식이다.

S
a b c d

각 데이터 세트는 2행으로 이루어지고, 첫 번째 행에는 판의 상태를 나타내는 jfen 형식의 문자열 S가 주어진다. 판의 크기는 2 ≤ W, H ≤ 9를 만족한다. 다음 행에는 로봇에 대한 명령이 주어진다. 이는 (a, b)에 있는 공을 (c, d)로 옮기는 명령을 나타낸다. 입력의 끝은 #으로 나타낸다.

출력

출력은 각 데이터 세트마다 명령을 실행한 후의 판 상태를 jfen 표기법으로 나타낸 문자열 1행이다. 출력 행에는 다른 문자가 있으면 안 된다.

힌트

1번째 입력의 초기 상태는 다음과 같다.

b.
.b

(1,1)의 공을 (1,2)로 옮기므로 명령 후 판은 다음과 같다.

.b
.b

예제1

  1. 예제 1

    입력
    b1/1b
    1 1 1 2
    b5/bbbbbb
    2 4 1 4
    b2b2b/7
    1 4 2 4
    #
    
    예상 출력
    1b/1b
    b2b2/bbb1bb
    b5b/3b3