문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

7120 : 달팽이 행렬 탐색

•시간제한: 2.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

7120 : 달팽이 행렬 탐색

시간 2.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

N × M 크기의 2차원 행렬이 주어집니다.
행렬의 시작 위치와 시작 방향이 주어질 때, 달팽이 모양(소용돌이 형태)으로 격자를 탐색하면서 방문하는 칸들의 값을 순서대로 출력하는 프로그램을 작성하십시오.
이동 중 격자 범위를 벗어나거나 이미 방문한 칸을 만나면, 이동 방향을 시계방향으로 90도 회전하여 계속 전진합니다.





[제약 조건]
• 입력되는 모든 수는 정수입니다.

입력 설명

첫째 줄에 행렬의 세로 크기 N과 가로 크기 M이 공백으로 구분되어 주어집니다. (1 ≤ N, M ≤ 50)
둘째 줄부터 N개의 줄에 걸쳐 각 줄에 M개의 원소가 공백으로 구분되어 주어집니다. 원소는 정수 또는 알파벳 한 글자입니다.
마지막 줄에 로봇의 시작 위치 r c와 시작 방향 d가 주어집니다. r은 행, c는 열(0-indexed)을 뜻하며, 방향 d는 U(상), D(하), L(좌), R(우) 중 하나입니다.

출력 설명

달팽이 순서대로 방문한 칸들의 값을 공백으로 구분하여 한 줄에 출력합니다.

입력 예시
COPY
복사되었습니다!

3 3
1 2 3
4 5 6
7 8 9
0 0 R

출력 예시
COPY
복사되었습니다!

1 2 3 6 9 8 7 4 5

도움

시계방향 회전 순서는 U → R → D → L → U 입니다. 2차원 방문 배열을 만들어 중복 방문을 차단하고 90도 회전 처리를 수행합니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘