문제 3059 · 비트 IV
쇼핑몰 상품 코드 정리
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
온라인 쇼핑몰에서는 여러 판매자가 등록한 상품을 한 화면에서 관리한다. 판매자는 상품 코드를 입력할 때 영문 대문자와 소문자를 섞어 쓰기도 하고, 읽기 편하도록 하이픈을 넣기도 한다. 관리 화면에서는 이러한 표기 차이를 줄이기 위해 모든 상품 코드를 일정한 규칙으로 정리해서 보여 주기로 했다. 정리 규칙은 두 가지다. 먼저 원래 코드에 있는 하이픈 문자 -를 모두 제거한다. 이어서 남아 있는 영문 대문자를 대응하는 영문 소문자로 바꾼다. 원래부터 소문자인 문자는 그대로 두며, 숫자도 그대로 둔다. 하이픈 이외의 문자를 삭제하거나 문자들의 순서를 바꾸어서는 안 된다. 하이픈은 코드의 처음이나 끝에 나타날 수 있고, 여러 개가 연속해서 나타날 수도 있다. 위치나 연속한 개수와 관계없이 모든 하이픈을 제거한다. 각 코드에는 영문자 또는 숫자가 적어도 하나 있으므로, 정리한 코드가 빈 문자열이 되는 경우는 없다. 숫자 0이 코드의 맨 앞에 있더라도 그대로 남겨야 한다. 상품 코드는 수가 아니라 문자열이기 때문이다. 입력의 각 줄은 별도로 처리할 상품 코드 하나를 뜻한다. 서로 다른 원래 코드가 정리 후 같은 문자열이 될 수 있지만, 이 경우에도 결과를 합치거나 한 줄을 생략하지 않는다. 같은 코드가 여러 번 입력되어도 입력된 횟수만큼 출력한다. 결과의 순서는 원래 코드가 주어진 순서와 같아야 한다. 이번 작업에서는 상품의 가격이나 재고를 확인하지 않는다. 코드가 실제 상품에 등록되어 있는지도 검사하지 않는다. 오직 주어진 문자열에 정리 규칙을 적용한 결과만 필요하다. 상품 코드 목록이 주어졌을 때, 관리 화면에 표시할 정리된 코드를 한 줄에 하나씩 출력하는 프로그램을 작성한다.
입력
첫째 줄에 상품 코드의 수 N이 주어진다. 1 ≤ N ≤ 1,000이다. 다음 N개 줄에는 상품 코드가 하나씩 주어진다. 각 코드의 길이는 1 이상 100 이하이며, 영문 대문자, 영문 소문자, 숫자, 하이픈(-)으로만 이루어진다. 각 코드에는 영문자 또는 숫자가 적어도 하나 있다. 공백은 주어지지 않는다.
출력
각 상품 코드를 정리한 문자열을 입력 순서대로 한 줄에 하나씩 출력한다. 총 N개 줄을 출력한다.
예제 입력 1
4 AB-09-x --Mug--2- 00-Z plain
예제 출력 1
ab09x mug2 00z plain
예제 입력 2
3 Q--1 q1 -Q-1-
예제 출력 2
q1 q1 q1
힌트 펼치기
- 하이픈을 제거한 문자열에 소문자 변환을 적용할 수 있다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |