문제 4730 · 바이트 II
버스 노선 표기의 통일
댓글 0| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms | 측정하지 않음 | 0 | 0 | 0 | 0.00% |
문제
한 지역의 버스 안내 시스템은 여러 차고지에서 전달받은 노선 표기를 전광판에 표시한다. 각 차고지는 같은 형식으로 자료를 보내지만, 영문자를 대문자로 쓰는지 소문자로 쓰는지와 노선 번호 앞에 붙이는 0의 개수가 서로 다르다. 안내 시스템은 전달받은 문자열을 정해진 표시 형식으로 바꾸어야 한다. 입력으로 주어지는 노선 표기는 구역 문자, 노선 번호, 운행 방향을 콜론으로 연결한 문자열이다. 콜론은 정확히 두 개이며, 각 부분 안에는 공백이나 콜론이 없다. 구역 문자는 영문 대문자 또는 소문자로만 이루어진 길이 1 이상 3 이하의 문자열이다. 구역 문자의 순서는 구역을 구분하는 정보이므로 바꾸지 않는다. 노선 번호 부분은 숫자 문자로만 이루어져 있으며 길이는 1 이상 6 이하다. 이 부분에는 맨 앞에 0이 여러 개 붙을 수 있다. 표시할 때는 맨 앞에 연속으로 붙어 있는 0을 모두 제거한다. 다만 모든 문자가 0이면 빈 문자열로 만들지 않고 숫자 0 하나를 표시한다. 번호의 중간이나 끝에 있는 0은 제거하지 않는다. 운행 방향은 영문자 한 글자다. u 또는 U는 상행을 뜻하고 d 또는 D는 하행을 뜻한다. 다른 방향 문자는 입력으로 주어지지 않는다. 전광판에는 상행을 UP으로, 하행을 DOWN으로 표시한다. 방향을 바꾸거나 구역 문자와 노선 번호의 위치를 교환하는 작업은 하지 않는다. 최종 표기는 구역 문자의 모든 영문자를 대문자로 바꾼 부분, 앞의 0을 정리한 노선 번호, 변환한 운행 방향을 하이픈으로 연결하여 만든다. 세 부분 사이에는 하이픈을 정확히 하나씩 넣으며 콜론은 남기지 않는다. 예를 들어 bQ:00042:d는 BQ-42-DOWN으로 바뀐다. 입력된 각 노선 표기는 독립적으로 변환한다. 서로 다른 입력이 같은 최종 표기로 바뀌더라도 중복을 제거하지 않는다. 또한 표기를 정렬하지 않고 입력 순서대로 출력한다. 모든 입력은 위 형식에 맞으므로 잘못된 표기를 판별하거나 별도의 오류 메시지를 출력할 필요는 없다.
입력
첫째 줄에 노선 표기의 수 N이 주어진다. N은 1 이상 50,000 이하의 정수다. 다음 N개 줄에 노선 표기가 하나씩 주어진다. 각 표기는 구역:번호:방향 형식이다. 구역은 영문 대문자와 소문자로 이루어지며 길이는 1 이상 3 이하다. 번호는 숫자 문자로 이루어지며 길이는 1 이상 6 이하다. 방향은 u, U, d, D 중 하나다. 각 표기에 공백은 없다.
출력
각 노선 표기를 변환한 결과를 입력 순서대로 한 줄에 하나씩 출력한다. 구역은 대문자로, 번호는 불필요한 선행 0 없이, 방향은 UP 또는 DOWN으로 표시하고 세 부분을 하이픈으로 연결한다.
예제 입력 1
4 bQ:00042:d a:000000:U Z:01020:u xy:7:D
예제 출력 1
BQ-42-DOWN A-0-UP Z-1020-UP XY-7-DOWN
예제 입력 2
3 c:09:u C:9:U abC:100000:d
예제 출력 2
C-9-UP C-9-UP ABC-100000-DOWN
힌트 펼치기
- 콜론을 기준으로 세 부분을 나눈다. 번호 앞의 0을 제거한 결과가 빈 문자열인 경우를 따로 처리한다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
댓글 0
로그인하면 댓글을 쓸 수 있습니다.
댓글 접기·펼치기
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| JavaScript | 브라우저 JavaScript | 1000ms / 테스트 | 측정하지 않음 |
| TypeScript | TypeScript 5.9.3 | 1000ms / 테스트 | 측정하지 않음 |
| Python 3 | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음 |
| C | YoWASP Clang 22 | 2000ms / 테스트 | 측정하지 않음 |
| C++ | YoWASP Clang 22 / libc++ | 2000ms / 테스트 | 측정하지 않음 |
| Java | OpenJDK javac + TeaVM (Java 21 문법) | 3000ms / 테스트 | 측정하지 않음 |
| Lua | Wasmoon 1.16.0 / Lua 5.4 | 3000ms / 테스트 | 측정하지 않음 |
| Ruby | Ruby 3.4 / ruby.wasm 2.10.1 | 5000ms / 테스트 | 측정하지 않음 |
| Scheme | BiwaScheme 0.8.3 | 5000ms / 테스트 | 측정하지 않음 |
| Prolog | SWI-Prolog / swipl-wasm 8.2.5 | 5000ms / 테스트 | 측정하지 않음 |
| Perl | Perl 5.28 / WebPerl 0.09-beta | 5000ms / 테스트 | 측정하지 않음 |