RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R02120

벽에 부딪히는 청소로봇

Bronze IV 브론즈 IV
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

\(R\)\(C\)열짜리 방을 청소로봇이 돌아다닌다. 행 번호는 위에서부터 \(1\)부터 \(R\)까지, 열 번호는 왼쪽에서부터 \(1\)부터 \(C\)까지 매겨져 있다.

로봇은 처음에 \((sr, sc)\) 칸에 있고, 명령 문자열을 앞에서부터 한 글자씩 따른다. 각 명령은 다음과 같다.

  • U: 한 칸 위로 (행이 \(1\)만큼 작아진다)
  • D: 한 칸 아래로 (행이 \(1\)만큼 커진다)
  • L: 한 칸 왼쪽으로 (열이 \(1\)만큼 작아진다)
  • R: 한 칸 오른쪽으로 (열이 \(1\)만큼 커진다)

만약 어떤 명령이 로봇을 방 밖으로 내보낸다면, 로봇은 벽에 막혀 그 자리에 그대로 머문다. 모든 명령을 수행한 뒤 로봇이 있는 칸을 구하여라.

제약

\(1 \le R, C \le 1000\), \(1 \le sr \le R\), \(1 \le sc \le C\), 명령의 길이는 \(0\) 이상 \(100\,000\) 이하이다.

입력 형식

첫째 줄에 방의 크기 \(R\)\(C\)가 주어진다.
둘째 줄에 시작 칸의 행과 열 \(sr\), \(sc\)가 주어진다.
셋째 줄에 U, D, L, R로 이루어진 명령 문자열이 주어진다 (빈 문자열일 수 있다).

출력 형식

최종 위치의 행과 열을 공백으로 구분하여 출력한다.

예제 1
입력
3 4
2 2
RRRDD
출력
3 4
설명

오른쪽으로 세 번 가면 열이 \(4\)에서 멈추고, 아래로 두 번 가면 행이 \(3\)에서 멈춘다. 최종 위치는 \((3,4)\)이다.

예제 2
입력
1 1
1 1
URDL
출력
1 1
설명

\(1\times1\) 격자에서는 어디로도 움직일 수 없으므로 그대로 \((1,1)\)이다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

벽에 부딪히는 청소로봇

개요
출제자 난이도 Bronze IV 브론즈 IV 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

벽에 부딪히는 청소로봇

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8