문제 4295 · 바이트 V
스마트 홈의 설정 온도
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 스마트 홈의 벽면 조절기는 실내의 목표 온도를 정수로 표시한다. 이 문제에서 다루는 온도는 센서가 측정한 실제 실내 온도가 아니라, 사용자가 조절기에 지정한 설정 온도다. 설정 온도는 항상 16 이상 30 이하이며, 조절기는 이 범위를 벗어난 값을 저장하지 않는다. 조절기에는 올림 버튼, 내림 버튼, 기본값 버튼이 있다. 올림 버튼을 누르면 현재 설정 온도가 30보다 작은 경우에만 설정 온도를 1 높인다. 이미 30이면 버튼을 눌러도 설정 온도는 그대로 30이다. 내림 버튼을 누르면 현재 설정 온도가 16보다 큰 경우에만 설정 온도를 1 낮춘다. 이미 16이면 설정 온도는 그대로 16이다. 기본값 버튼을 누르면 이전 설정 온도와 관계없이 설정 온도를 22로 바꾼다. 조절기는 사용자가 누른 버튼을 순서대로 기록한다. 기록에서 문자 U는 올림 버튼, 문자 D는 내림 버튼, 문자 R은 기본값 버튼을 의미한다. 각 문자는 버튼을 정확히 한 번 누른 동작을 나타내며, 모든 동작은 앞의 동작이 끝난 뒤에 처리된다. 버튼을 오래 누르는 동작이나 동시에 여러 버튼을 누르는 동작은 없다. 또한 버튼 기록을 처리하는 동안 다른 원인으로 설정 온도가 바뀌는 일도 없다. 관리 화면에는 최종 설정 온도와 함께 실제로 설정 온도가 바뀐 동작의 수를 표시하려 한다. 버튼을 눌렀다는 사실만으로 이 수가 증가하지는 않는다. 각 동작의 처리 직전 온도와 처리 직후 온도가 다를 때만 1을 더한다. 예를 들어 온도가 30일 때 U를 누르거나 온도가 22일 때 R을 누르면 변화 횟수는 증가하지 않는다. 온도가 30일 때 R을 누르면 온도가 22가 되지만 변화 횟수는 8이 아니라 1 증가한다. 처음 설정 온도와 버튼 기록이 주어졌을 때, 모든 동작을 처리한 뒤의 설정 온도와 변화 횟수를 구하는 프로그램을 작성하라. 처음 설정 온도 자체는 변화 횟수에 포함하지 않으며, 실제로 온도가 바뀐 동작이 하나도 없으면 변화 횟수는 0이다.
입력
첫째 줄에 처음 설정 온도 T와 동작 수 Q가 공백으로 구분되어 주어진다. (16 ≤ T ≤ 30, 1 ≤ Q ≤ 100,000) 둘째 줄에 길이가 정확히 Q인 문자열 S가 주어진다. S는 U, D, R로만 이루어져 있으며 공백을 포함하지 않는다. T와 Q는 정수다.
출력
최종 설정 온도와 실제로 설정 온도가 바뀐 동작의 수를 공백으로 구분하여 한 줄에 출력한다.
예제 입력 1
29 6 UURDDR
예제 출력 1
22 5
예제 입력 2
16 4 DDDD
예제 출력 2
16 0
예제 입력 3
22 5 RRUDR
예제 출력 3
22 2
힌트 펼치기
- 버튼 하나를 처리하기 전의 온도를 저장한다.
- 버튼 처리 후 온도가 이전과 다를 때만 변화 횟수를 증가시킨다.
관련 서재 장
알고리즘 분류
구현시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |