[Baekjoon] 2290. LCP Test

섬섬's 개발일지·2022년 3월 14일
0

baekjoon

목록 보기
19/20
시간 제한메모리 제한
2초128MB

문제

지민이의 친한 친구인 지환이는 지민이의 새로운 모니터를 위해 테스트 할 수 있는 프로그램을 만들기로 하였다.

입력

첫째 줄: 두 개의 정수 s와 n이 들어온다.

  • 1 <= s <= 10
  • 0 <= n <= 9,999,999,999

출력

길이가 s인 '-'와 '|'를 이용해서 출력해야 한다. 각 숫자는 모두 s + 2의 가로와 2s + 3의 세로로 이루어 진다.
나머지는 공백으로 채워야 한다. 각 숫자 사이에는 공백이 한 칸 있어야 한다.

코드

def one(width,height, start, display):
  for i in range(1, height // 2):
    display[i][start + width -1] = 2
    display[i*-1-1][start + width -1] = 2

def two(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start + width -1] = 2
    display[i*-1-1][start] = 2
  for i in range(1,width-1):
    display[0][start + i] = 1
    display[height // 2][start + i] = 1
    display[height-1][start + i] = 1

def three(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start + width -1] = 2
    display[i*-1-1][start + width - 1] = 2
  for i in range(1,width-1):
    display[0][start + i] = 1
    display[height // 2][start + i] = 1
    display[height-1][start + i] = 1

def four(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start + width -1] = 2
    display[i][start] = 2
    display[i*-1-1][start + width - 1] = 2
  for i in range(1,width-1):
    display[height // 2][start + i] = 1

def five(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start] = 2
    display[i*-1-1][start + width - 1] = 2
  for i in range(1,width-1):
    display[0][start + i] = 1
    display[height // 2][start + i] = 1
    display[height-1][start + i] = 1

def six(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start] = 2
    display[i*-1-1][start] = 2
    display[i*-1-1][start + width - 1] = 2
  for i in range(1,width-1):
    display[0][start + i] = 1
    display[height // 2][start + i] = 1
    display[height-1][start + i] = 1

def seven(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start + width -1] = 2
    display[i*-1-1][start + width - 1] = 2
  for i in range(1,width-1):
    display[0][start + i] = 1

def eight(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start + width -1] = 2
    display[i*-1-1][start + width - 1] = 2
    display[i][start] = 2
    display[i*-1-1][start] = 2
  for i in range(1,width-1):
    display[0][start + i] = 1
    display[height // 2][start + i] = 1
    display[height-1][start + i] = 1

def nine(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start + width -1] = 2
    display[i*-1-1][start + width - 1] = 2
    display[i][start] = 2
  for i in range(1,width-1):
    display[0][start + i] = 1
    display[height // 2][start + i] = 1
    display[height-1][start + i] = 1
  
def zero(width, height, start, display):
  for i in range(1, height // 2):
    display[i][start + width -1] = 2
    display[i*-1-1][start + width - 1] = 2
    display[i][start] = 2
    display[i*-1-1][start] = 2
  for i in range(1,width-1):
    display[0][start + i] = 1
    display[height-1][start + i] = 1

s, num = input().split()
s = int(s)
digit = len(num)
width, height = s+2, 2*s+3
display = [ [0] * ((width+1) * digit) for _ in range(height)]

start = 0
for n in num:
  if n == '1': one(width, height, start, display)
  elif n == '2': two(width, height, start, display)
  elif n == '3': three(width, height, start, display)
  elif n == '4': four(width, height, start, display)
  elif n == '5': five(width, height, start, display)
  elif n == '6': six(width, height, start, display)
  elif n == '7': seven(width, height, start, display)
  elif n == '8': eight(width, height, start, display)
  elif n == '9': nine(width, height, start, display)
  else: zero(width, height, start, display)
  start += width + 1

for d in display:
  for r in d:
    print(' ' if r == 0 else '-' if r == 1 else '|', end ='')
  print()
profile
섬나라 개발자

0개의 댓글

관련 채용 정보