문제 4141 · 비트 I
쇼핑몰 미리보기 코드
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 온라인 쇼핑몰은 판매자가 등록한 상품 관리 코드를 상품 목록의 미리보기 화면에 표시하려 한다. 원래 관리 코드는 영문 소문자, 숫자, 하이픈으로 이루어져 있다. 하이픈은 판매자가 코드를 읽기 편하게 넣은 구분 기호이며, 숫자는 내부 관리용 정보다. 미리보기 화면에서는 구분 기호를 없애고 숫자를 가려서 상품 코드의 대략적인 모양만 보여 주기로 했다. 화면에 표시할 문자열은 원래 코드를 왼쪽부터 한 글자씩 확인하여 만든다. 확인한 글자가 영문 소문자이면 그 글자를 그대로 결과의 맨 뒤에 붙인다. 숫자이면 숫자의 값과 관계없이 별표 한 개를 결과의 맨 뒤에 붙인다. 하이픈이면 결과에 아무것도 붙이지 않고 다음 글자로 넘어간다. 모든 글자를 확인한 뒤 만들어진 문자열이 미리보기 코드가 된다. 숫자가 연속해서 나타나더라도 각각 별표로 바꾼다. 예를 들어 숫자 세 개가 나란히 있으면 별표도 세 개가 나란히 들어간다. 여러 개의 하이픈이 이어져 있어도 모두 제거한다. 원래 코드의 맨 앞이나 맨 뒤에 있는 하이픈도 같은 규칙으로 제거한다. 소문자의 순서를 바꾸거나 같은 소문자를 하나로 합치는 처리는 하지 않는다. 따라서 남겨진 소문자와 숫자 자리의 상대적인 순서는 원래 코드와 같다. 원래 코드가 하이픈으로만 이루어져 있다면 모든 글자를 확인한 뒤 결과가 비게 된다. 이 경우에는 빈 줄 대신 EMPTY라는 안내 문자열을 표시한다. EMPTY는 원래 코드에 들어갈 수 없는 대문자로 이루어져 있으므로 정상적으로 만들어진 미리보기 코드와 구별할 수 있다. 상품 관리 코드 하나가 주어졌을 때 화면에 표시해야 할 문자열을 구한다. 별표는 다른 기호나 공백으로 바꾸지 않고 문자 그대로 출력한다.
입력
첫째 줄에 상품 관리 코드 S가 주어진다. S의 길이는 1 이상 1,000 이하이다. S는 영문 소문자 a부터 z, 숫자 0부터 9, 하이픈으로만 이루어지며 공백은 없다.
출력
규칙에 따라 만든 미리보기 코드를 한 줄에 출력한다. 결과가 빈 문자열이면 EMPTY를 출력한다.
예제 입력 1
ab-30-c7--
예제 출력 1
ab**c*
예제 입력 2
----
예제 출력 2
EMPTY
예제 입력 3
0a00b
예제 출력 3
*a**b
힌트 펼치기
- 문자마다 소문자, 숫자, 하이픈 중 어느 종류인지 확인한다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |