#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목코드 해석2019-10-01 14:29
작성자

아래와 같은 문제를 푸는데 해답 코드가 전혀 이해가 안되는 식이라서 질문 드립니다. 해답에 있는 for문 안에 있는 숫자들은 어떻게 사용하는 건가요??

입력

입력 파일은 여러 줄로 구성되며 표시될 각각의 숫자마다 한 줄씩 입력된다. 각 줄에는 s와 n이라는 두개의 정수가 들어있으며 n은 출력될 숫자( 0<= n <= 99,999,999 ), s는 숫자를 표시하는 크기( 1<= s < 10 )를 의미한다. 0 이 두 개 입력된 줄이 있으면 입력이 종료되며 그 줄은 처리되지 않는다.

출력

입력 파일에서 지정한 숫자를 수평 방향은 '-' 기호를, 수직 방향은 '|'를 이용해서 LCD 디스플레이 형태로 출력한다. 각 숫자는 정확하게 s+2개의 열, 2s+3개의 행으로 구성된다. 마지막 숫자를 포함한 모든 숫자를 이루는 공백을 스페이스로 채워야 한다. 두 개의 숫자 사이에는 정확하게 한 열의 공백이 있어야 한다.

각 숫자 다음에는 빈 줄을 한 줄 출력한다. 밑에 있는 출력 예에 각 숫자를 출력하는 방식이 나와있다.

입력 예

2 12345
3 67890
0 0

출력 예

      --   --        --
   |    |    | |  | |
   |    |    | |  | |
      --   --   --   --
   | |       |    |    |
   | |       |    |    |
      --   --        --

 ---   ---   ---   ---   ---
|         | |   | |   | |   |
|         | |   | |   | |   |
|         | |   | |   | |   |
 ---         ---   ---
|   |     | |   |     | |   |
|   |     | |   |     | |   |
|   |     | |   |     | |   |
 ---         ---   ---   ---
정답 :
p=1
while p:
p,q=input().split();p=int(p)
if p:
for x in[28728]+[609961108]*p+[14680127]+[340862356]*p+[14708792,-1]:
print(' '.join(d[0]+d[1]*p+d[2]for d in[' - | | '[x>>int(j)*3&7:]for j in q]))
댓글
이전list의 method sort()에 대한 질문2019-10-02
다음의도는 알겠지만, Level 102019-10-02