문제 3546 · 비트 III
예약 코드 옮겨 적기
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 병원의 접수 창구는 환자가 가져온 예약 안내문의 코드를 예약 확인 화면에 옮겨 적는다. 안내문에서는 코드를 읽기 쉽게 표시하려고 글자 사이에 붙임표를 넣을 수 있다. 또한 안내문을 작성한 방식에 따라 영문자가 대문자로 적히기도 하고 소문자로 적히기도 한다. 예약 확인 화면에는 이러한 표시 차이를 없앤 코드를 입력해야 한다. 옮겨 적는 규칙은 다음과 같다. 코드에 들어 있는 붙임표 문자 '-'는 모두 지운다. 영문 소문자 a부터 z까지는 각각 대응하는 영문 대문자 A부터 Z까지로 바꾼다. 이미 대문자인 영문자와 숫자 0부터 9까지는 그대로 둔다. 붙임표를 지우는 것과 소문자를 대문자로 바꾸는 것 이외에는 어떤 변경도 하지 않는다. 특히 남겨 둔 문자들의 순서를 바꾸어서는 안 된다. 같은 영문자나 숫자가 여러 번 등장하더라도 모두 그대로 남긴다. 숫자로만 이루어진 부분도 정수로 계산하지 않고 문자로 취급하므로, 앞에 있는 숫자 0을 없애지 않는다. 붙임표가 연속해서 나오거나 코드의 맨 앞 또는 맨 뒤에 나오는 경우에도 각 붙임표를 똑같이 지운다. 붙임표가 하나도 없다면 지우는 문자는 없다. 입력에는 영문 대문자, 영문 소문자, 숫자, 붙임표만 등장하며 공백은 포함되지 않는다. 또한 붙임표 이외의 문자가 적어도 하나 있으므로 변환한 결과가 빈 문자열이 되는 경우는 없다. 안내문에 적힌 코드 한 개가 주어졌을 때, 예약 확인 화면에 입력할 코드를 한 줄로 출력한다. 출력에는 변환한 코드만 적으며, 문자 사이에 공백을 넣거나 코드의 앞뒤에 따옴표를 붙이지 않는다. 서로 다른 예약인지 비교하거나 실제 예약 정보를 조회할 필요는 없다.
입력
첫째 줄에 예약 코드 S가 주어진다. S의 길이는 1 이상 1,000 이하의 정수다. S는 영문 대문자 A부터 Z, 영문 소문자 a부터 z, 숫자 0부터 9, 붙임표 '-'로만 이루어진다. S에는 붙임표 이외의 문자가 적어도 하나 포함된다.
출력
모든 붙임표를 지우고 모든 영문 소문자를 대문자로 바꾼 코드를 한 줄로 출력한다. 나머지 문자는 입력에서의 순서와 개수를 그대로 유지한다.
예제 입력 1
-mQ--007-r-
예제 출력 1
MQ007R
예제 입력 2
000aA-0
예제 출력 2
000AA0
예제 입력 3
R8T2
예제 출력 3
R8T2
힌트 펼치기
- 문자를 왼쪽부터 확인하면서 붙임표가 아닌 문자만 결과에 추가한다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |