문제 3895 · 바이트 V
온실 수레의 수확 기록
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 농장은 온실의 화분을 원 모양의 작업대에 놓고 수레 한 대로 관리한다. 화분에는 시계 방향으로 1번부터 N번까지 번호가 붙어 있다. 각 화분에는 열매 한 개가 있으며, 열매의 익은 정도는 0 이상 9 이하의 정수로 표시한다. 작업을 시작할 때 수레는 1번 화분 앞에 있다. 농장에서는 수레에 전달할 명령을 하나의 문자열로 기록한다. 문자열의 각 문자는 명령 하나이며, 왼쪽부터 차례대로 실행한다. L은 수레를 현재 화분의 바로 앞 번호 화분으로 옮긴다. 이때 1번의 앞은 N번이다. R은 수레를 바로 다음 번호 화분으로 옮기며, N번의 다음은 1번이다. 화분이 하나뿐이면 L과 R을 실행해도 수레의 위치는 바뀌지 않는다. W는 수레가 있는 화분에 물을 주는 명령이다. 물을 주면 그 화분의 익은 정도가 1 증가하지만, 이미 9라면 그대로 유지된다. H는 현재 화분의 열매를 확인하는 명령이다. 익은 정도가 5 이상이면 열매를 수확하고, 수확 직전의 익은 정도만큼 수확 점수를 얻는다. 수확한 자리에는 새 열매가 생겨 익은 정도가 0이 된다. 익은 정도가 5 미만이면 수확하지 않으며 점수와 화분 상태도 바뀌지 않는다. 한 명령이 끝난 뒤에 다음 명령을 실행한다. 이동 자체는 열매의 익은 정도를 바꾸지 않으며, 시간이 지나도 명령에 적힌 변화 외에는 아무 변화가 없다. 다른 화분에 물을 주거나 여러 화분을 한꺼번에 수확하는 일도 없다. 같은 화분에서 여러 번 수확한 점수는 모두 더한다. 초기 상태와 명령 문자열이 주어진다. 모든 명령을 실행한 뒤 얻은 수확 점수의 합, 수레가 있는 화분 번호, 모든 화분의 최종 익은 정도를 구한다.
입력
첫째 줄에 화분 수 N과 명령 수 M이 공백으로 구분되어 주어진다. N과 M은 각각 1 이상 100,000 이하의 정수다. 둘째 줄에 길이가 N인 문자열이 주어진다. 각 문자는 0부터 9까지의 숫자이며, i번째 문자는 i번 화분의 초기 익은 정도다. 셋째 줄에 길이가 M인 명령 문자열이 주어진다. 각 문자는 L, R, W, H 중 하나다.
출력
첫째 줄에 수확 점수의 합과 마지막 수레 위치를 공백으로 구분하여 출력한다. 한 번도 수확하지 못했다면 점수의 합은 0이다. 둘째 줄에 1번 화분부터 N번 화분까지의 최종 익은 정도를 공백 없이 이어서 출력한다.
예제 입력 1
3 7 459 WHRHRWH
예제 출력 1
19 3 000
예제 입력 2
1 6 4 LWHRWH
예제 출력 2
5 1 1
힌트 펼치기
- 수레의 현재 위치와 화분별 익은 정도를 저장하고 명령을 하나씩 실행한다.
관련 서재 장
알고리즘 분류
구현시뮬레이션배열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |