[백준 BOJ_2290] LCD Test Python 풀이
출처: 백준 온라인 저지
문제
풀이
단순구현 해주었습니다.
N이 1일 때를 기준으로 표현할 수 있는 모든 가로, 세로 줄은 다음과 같이 7개였습니다.
- 맨 위 가로 줄
- 첫 번째 왼쪽 세로 줄
- 첫 번째 오른쪽 세로 줄
- 중간 가로 줄
- 두 번째 왼쪽 세로 줄
- 두 번째 오른쪽 세로 줄
- 맨 아래 가로 줄
각 숫자를 key로, 각각의 위치에 들어가야 할 값(“ “, “-“, “|“)을 가지는 1차원 list를 value로 가지는 dictionary를 만들어 주었습니다.
그 후 index를 돌며 각각의 숫자들의 해당 index 값들을 row에 적절히 추가해주며 다 추가되면 row를 print해주는 식으로 구현했습니다.
N이 1인 기준의 값으로 들어가 있기 때문에 가로 줄에서는 “-“를 N으로 곱해주어 늘려주었고, 세로 줄에서는 같은 row를 N만큼 더 print해주었습니다.
또한 index를 돌아주는 i를 증가할 때, 세로 줄(“|“)은 가로 줄(“-“)과 다르게 하나의 row의 두 번 들어가기 때문에 세로 줄을 넣어주고 나서는 i를 2증가 시켜주었습니다.
코드
# (0) 맨 위 가로 줄,
# (1) 첫 번째 왼쪽 세로 줄, (2) 오른쪽 세로 줄,
# (3) 중간 가로 줄,
# (4) 두 번째 왼쪽 세로 줄, (5) 오른쪽 세로 줄,
# (6) 맨 아래 가로 줄
numbers = {
"1": [" ", " ", "|", " ", " ", "|", " "],
"2": ["-", " ", "|", "-", "|", " ", "-"],
"3": ["-", " ", "|", "-", " ", "|", "-"],
"4": [" ", "|", "|", "-", " ", "|", " "],
"5": ["-", "|", " ", "-", " ", "|", "-"],
"6": ["-", "|", " ", "-", "|", "|", "-"],
"7": ["-", " ", "|", " ", " ", "|", " "],
"8": ["-", "|", "|", "-", "|", "|", "-"],
"9": ["-", "|", "|", "-", " ", "|", "-"],
"0": ["-", "|", "|", " ", "|", "|", "-"],
}
s, n = input().split()
s = int(s)
i = 0
while i < 7:
row = ""
if i % 3:
for num in n:
row += numbers[num][i] + " "*s + numbers[num][i+1]
row += " "
for _ in range(s):
print(row)
i += 2
else:
for num in n:
row += " " + numbers[num][i]*s + " "
row += " "
print(row)
i += 1
Leave a comment