만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Emag eht htiw Em Pleh

면접 대비

시간 제한1초메모리 제한128 MB

요약
백과 흑의 기물 목록이 주어지면 밝은 칸과 어두운 칸을 교대로 채워 8x8 체스판을 ASCII 아트로 출력한다.
난이도

보통10점 중 4점

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

문제

체스 판 위의 기물 배치가 주어진다. 백(White)과 흑(Black) 각 진영의 기물이 어느 칸에 있는지 목록으로 주어질 때, 그 배치를 아래 형식의 아스키(ASCII) 그림으로 그려서 출력하여라.

체스 판은 8×8 칸으로 이루어진다. 가로줄(랭크)은 위에서부터 8, 7, …, 1이고, 세로줄(파일)은 왼쪽에서부터 a, b, …, h이다. 파일 a를 1, b를 2, …, h를 8로 볼 때, 칸 (파일 f, 랭크 r)은 f + r이 홀수이면 밝은 칸, 짝수이면 어두운 칸이다. 즉 a1은 어두운 칸이다.

각 칸은 정확히 세 글자로 그린다. 밝은 칸은 채움 문자 .을, 어두운 칸은 채움 문자 :을 쓴다. 칸이 비어 있으면 채움 문자를 세 번 반복한다(... 또는 :::). 칸에 기물이 있으면 채움문자 + 기물문자 + 채움문자 꼴로 그린다(예: .r., :Q:).

기물 문자는 K(킹), Q(퀸), R(룩), B(비숍), N(나이트), P(폰)이다. 백의 기물은 대문자로, 흑의 기물은 소문자로 그린다.

칸과 칸 사이, 그리고 양 끝에는 세로 막대 |를 둔다. 즉 한 랭크 줄은 |칸1|칸2|…|칸8| 꼴이다. 각 랭크 줄의 위와 판의 맨 아래에는 구분선 +---+---+---+---+---+---+---+---+을 둔다(구분선 9줄, 랭크 줄 8줄). 랭크 8을 맨 위에, 랭크 1을 맨 아래에 그린다.

입력

입력은 두 줄이다. 첫 줄은 White: 로 시작하고 그 뒤에 백 진영 기물의 목록이 쉼표로 구분되어 주어진다. 둘째 줄은 Black: 로 시작하고 같은 방식으로 흑 진영 기물의 목록이 주어진다.

각 기물은 대문자 기물 문자(K, Q, R, B, N) 뒤에 그 기물이 놓인 칸이 붙어 나오거나(예: Ke1, Nb1), 기물 문자 없이 칸만 나온다. 문자 없이 칸만 있으면 폰을 뜻한다(예: a2). 칸은 파일 문자(a–h)와 랭크 숫자(1–8)로 이루어진다. 입력에서는 백과 흑 모두 기물 문자를 대문자로 쓴다.

출력

주어진 기물 배치에 해당하는 체스 판을 위에서 설명한 형식대로 그려서 출력한다.

예제3

  1. 예제 1

    입력
    White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4
    Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6
    
    예상 출력
    +---+---+---+---+---+---+---+---+
    |.r.|:::|.b.|:q:|.k.|:::|.n.|:r:|
    +---+---+---+---+---+---+---+---+
    |:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.|
    +---+---+---+---+---+---+---+---+
    |...|:::|.n.|:::|...|:::|...|:p:|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|.P.|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:P:|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |.P.|:::|.P.|:P:|...|:P:|.P.|:P:|
    +---+---+---+---+---+---+---+---+
    |:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.|
    +---+---+---+---+---+---+---+---+
    
  2. 예제 2

    입력
    White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,Ng1,a2,b2,c2,d2,e2,f2,g2,h2
    Black: Ke8,Qd8,Ra8,Rh8,Bc8,Bf8,Nb8,Ng8,a7,b7,c7,d7,e7,f7,g7,h7
    
    예상 출력
    +---+---+---+---+---+---+---+---+
    |.r.|:n:|.b.|:q:|.k.|:b:|.n.|:r:|
    +---+---+---+---+---+---+---+---+
    |:p:|.p.|:p:|.p.|:p:|.p.|:p:|.p.|
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|...|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|...|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |.P.|:P:|.P.|:P:|.P.|:P:|.P.|:P:|
    +---+---+---+---+---+---+---+---+
    |:R:|.N.|:B:|.Q.|:K:|.B.|:N:|.R.|
    +---+---+---+---+---+---+---+---+
    
  3. 예제 3

    입력
    White: Ke1
    Black: Ke8
    
    예상 출력
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|.k.|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|...|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|...|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|...|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:K:|...|:::|...|
    +---+---+---+---+---+---+---+---+