[백준 2290] LCD Test python 파이썬
업데이트:
문제 이해
문제에서 주어지는 방식에 맞게 숫자를 그리면 되는 문제
접근
보자마자 구현이다! 하는 생각이 들었고, 숫자별로 하나씩 그려야하나 보던 중 출력을 자세히 보니
7 segments
라는 것을 알아채었다
논리회로 강의에서 karnaugh map을 그리며 고통받던 기억에 PTSD가…
위의 그림과 같이 출력하도록 구현하였다.
정답 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import sys
input = sys.stdin.readline
def getInts(): return map(int, input().split())
h, v = '-', '|'
s, n = input().split()
s = int(s)
def construct_segment(n):
lcd = [[' ']*(s+2) for _ in range(2*s + 3)]
for i in range(1, s+1):
if n in '02356789':
lcd[0][i] = h # a
if n in '01234789':
lcd[i][-1] = v # b
if n in '013456789':
lcd[s+1+i][-1] = v # c
if n in '0235689':
lcd[2*s + 2][i] = h # d
if n in '0268':
lcd[s+1+i][0] = v # e
if n in '045689':
lcd[i][0] = v # f
if n in '2345689':
lcd[s+1][i] = h # g
return lcd
display = [construct_segment(i) for i in n]
for line in zip(*display):
for r in line:
print(''.join(r), end=' ')
print()
댓글남기기