4 상태 바코드
많은 우편 서비스 (Royal Mail UK, Canada Post, US Mail 등)는 4 가지 상태 바코드를 사용하여 메일 정보를 인코딩합니다. ASCII로 렌더링하면 다음과 같이 보일 수 있습니다.
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
4 상태 바코드는 일련의 막대입니다. 각 막대를 위, 아래 또는 둘 다 확장하여 4 가지 가능성을 허용합니다. 즉, 각 막대는 기본적으로 기본 4 자리를 나타냅니다.
| | 바 : | | | | | | 자리 : 012 3
이 기호의 문제점은 각 바코드가 유효하고 다른 바코드가 거꾸로되어 있다는 것입니다. 방향이 잘못된 경우 의미를 크게 변경합니다. 따라서 시작 및 중지 순서는 일반적으로 구현되므로 스캐너는 읽을 방향을 계산할 수 있습니다.
이 과제를 위해 Australia Post에서 지정한 시작 / 중지 시퀀스를 사용합니다. 각 바코드는 1 0
시퀀스로 시작하고 끝납니다 .
도전
당신의 임무는 양의 정수가 주어지면 N
ASCII 4 상태 바코드로 변환 하는 프로그램이나 함수를 작성하는 것입니다. 여기서 각 막대 (시작 / 정지 시퀀스 제외)는의 기본 4 표현에서 숫자를 나타냅니다 N
.
예:
integer가 주어지면 19623
먼저이를 기본 4 표현으로 변환합니다 10302213
.
그런 다음 각 숫자를 해당 막대에 매핑합니다.
1,030 2 1 3 | | | | | | | | | | | | | | | |
마지막으로 시작 / 중지 시퀀스를 추가합니다.
시작 : 끝 : 1,010 | | | | | | | | | | | | | | | | | | | | | |
결과 바코드는 프로그램의 출력이어야합니다.
규칙 :
- 입력은 언어의 표준 정수 크기 범위 내에서 양의 정수가됩니다.
- 출력 :
- 행 목록이거나 개행을 포함하는 문자열 일 수 있습니다.
- 모양이 그대로 유지되는 경우 선행 또는 후행 줄 바꿈 / 공백이 포함될 수 있습니다.
- 위의 형식으로 바코드를 표시해야합니다. 막대를 그릴 때 파이프 문자 (
|
)와 공백 문자 ()를 사용해야하며 각 수직 막대 사이에 1 개의 공백이 있어야합니다.
- 이것은 code-golf 이므로 가장 짧은 프로그램 (바이트)이 이깁니다!
테스트 사례
4095 :
| | | | | | | | | | | | | | | | | | | | | | | |
4096 :
| | | | | | | | | | | | | |
7313145 :
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |