[백준 BOJ_2290] LCD Test Python 풀이

출처: 백준 온라인 저지

문제

image

풀이

단순구현 해주었습니다.
N이 1일 때를 기준으로 표현할 수 있는 모든 가로, 세로 줄은 다음과 같이 7개였습니다.

  1. 맨 위 가로 줄
  2. 첫 번째 왼쪽 세로 줄
  3. 첫 번째 오른쪽 세로 줄
  4. 중간 가로 줄
  5. 두 번째 왼쪽 세로 줄
  6. 두 번째 오른쪽 세로 줄
  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