yup0927   1년 전

문제 이해를 하는데 시간을 한참 쓰다가 원문으로 보니 그 쪽이 차라리 나은 것 같아서..
혹여 이 문제를 풀러 오셨다가 비슷한 이유로 고생하실 분들을 위해 남깁니다.

입출력:

문자열이 80 글자 씩 끊어서 들어오고, 80 글자 씩 끊어서 출력하셔야 합니다.
입력이 100 글자라면 80/20 글자가 잘려 들어오고, 출력이 200 글자라면 80/80/40 글자로 끊어서 출력해야 합니다.
입력에 문제 번호는 존재하지 않습니다. 디코딩 할 바이트 수 B와 디코딩 할 데이터가 한 줄 이상에 걸쳐 들어옵니다.

문제 설명:

모든 데이터는 2바이트 단위로 저장되어있습니다.
디코딩 할 데이터는 반복 횟수를 나타내는 count 또는 앞으로 몇 개의 데이터를 그대로 읽을 지를 나타내는 value와 데이터로 구성되어있습니다.
count의 경우 첫 번째 비트가 1이며 나머지 7 비트는 [반복 횟수 - 3]을 나타냅니다. count는 3~130번 반복되는 데이터를 처리합니다. 즉 count 뒤에는 1개의 데이터가 존재합니다.
count가 아닐 경우는 value를 나타냅니다. value는 첫 번째 비트가 0이며 나머지 7 비트는 [값 - 1]의 형태로 저장됩니다. 값은 앞으로 몇 개의 데이터를 그대로 읽으면 되는 지를 나타냅니다. 즉 value 뒤에는 [값]만큼의 데이터가 존재합니다.

예제 입력에서 

32
850080FF016666825A0A717273747580080110111384550301020399807700CC

의 경우를 보면,

85,00/80,FF/01,6666/82,5A/0A,7172737475800801101113/84,55/03,01020399/80,77/00,CC

로 끊어서 처리됩니다.

댓글을 작성하려면 로그인해야 합니다.