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

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

기본 벽 미로

면접 대비

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

요약
6 곱하기 6 격자와 벽 세 개, 시작 칸과 도착 칸이 주어질 때 N, E, S, W 이동으로 이루어진 사전순 최소 최단 경로를 출력한다.
난이도

보통10점 중 5점

유형
BFS, 그래프, 구현, 행렬
정답자
아직 제출이 없습니다

문제

이 문제에서는 다음으로 이루어진 아주 간단한 미로를 풀어야 합니다.

  1. 6×66 \times 6 크기의 단위 정사각형 격자
  2. 길이가 11 이상 66 이하의 정수인 벽 3개. 각 벽은 격자선을 따라 가로 또는 세로로 놓여 칸을 나눕니다.
  3. 시작 표식과 도착 표식 각각 하나씩. 각 표식은 한 칸을 차지합니다.

예시 미로는 다음과 같습니다.

예시 미로

시작 표식이 있는 칸에서 도착 표식이 있는 칸까지의 최단 경로를 찾아야 합니다. 이동은 인접한 두 칸 사이에서만 가능하며, 두 칸이 인접하다는 것은 변을 공유하고 그 변이 벽으로 막혀 있지 않다는 뜻입니다. 격자 밖으로는 나갈 수 없습니다.

입력

입력은 여러 개의 테스트 케이스로 이루어집니다.

각 테스트 케이스는 다섯 줄로 구성됩니다.

  • 첫째 줄: 시작 표식이 있는 칸의 열과 행.
  • 둘째 줄: 도착 표식이 있는 칸의 열과 행.
  • 셋째, 넷째, 다섯째 줄: 각각 벽 하나의 위치.

칸은 왼쪽에서부터 센 열 번호 1…61 \dots 6 과 위에서부터 센 행 번호 1…61 \dots 6 으로 나타냅니다.

각 벽은 두 끝점으로 주어집니다. 가로 벽은 왼쪽 끝점을 먼저, 오른쪽 끝점을 나중에 적고, 세로 벽은 위쪽 끝점을 먼저, 아래쪽 끝점을 나중에 적습니다. 각 끝점은 격자 왼쪽 변으로부터의 거리와 격자 위쪽 변으로부터의 거리, 두 정수(둘 다 0…60 \dots 6)로 주어집니다.

세 벽은 서로 교차하지 않지만 격자의 모서리에서 맞닿을 수는 있으며, 모든 끝점은 격자 위에 있습니다. 시작 표식에서 도착 표식까지의 유효한 경로는 항상 존재합니다.

마지막 테스트 케이스 다음에는 00 두 개가 적힌 줄이 오며, 이 줄은 처리하지 않습니다.

출력

각 테스트 케이스마다 시작 표식에서 도착 표식까지의 최단 경로 하나를 한 줄에 출력합니다.

경로는 이동을 나타내는 문자열로 적으며, 각 이동은 다음 중 하나입니다.

  • N — 위로 한 칸
  • E — 오른쪽으로 한 칸
  • S — 아래로 한 칸
  • W — 왼쪽으로 한 칸

최단 경로가 여러 개일 수 있습니다. 답을 유일하게 만들기 위해, 문자열을 일반 텍스트로 비교했을 때 사전순으로 가장 앞서는 최단 경로 문자열을 출력합니다. 이때 이동 문자의 순서는 E < N < S < W 입니다.

시작 표식과 도착 표식이 같은 칸에 있으면 경로는 비어 있으므로 빈 줄을 출력합니다.

예제2

  1. 예제 1

    입력
    1 6
    2 6
    0 0 1 0
    1 5 1 6
    1 5 3 5
    0 0
    
    예상 출력
    NEEESWW
    
  2. 예제 2

    입력
    1 1
    6 6
    0 0 6 0
    0 0 0 6
    6 0 6 6
    0 0
    
    예상 출력
    EEEEESSSSS