망나니 AWOS의 일상
article thumbnail

문제 요약

숫자가 차지하는 길이와 좌, 우 여백의 길이 및 숫자 하나하나의 간격의 길이를 구해야 한다.

0일 때 차지하는 길이는 4, 1이 차지하는 길이는 2, 2~9가 차지하는 길이는 3이다.

 

문제 풀이

예제 입력 1에서 120을 예시로 들어줬는데

좌, 우 여백의 길이를 총 2로 생각하고, 120이라는 수이지만 쪼개면 1 2 0 이 되어 여백의 길이는 2가 되고 숫자 하나하나 차지하고 있는 길이를 구하면 1은 2, 2는 3, 0은 4가 나와서 

1+2+1+3+1+4+1 = 13이 된다. 설명이 어려웠다면 밑에 사진을 첨부해놨으니 참고하길 바란다.

좌,우 및 숫자 하나의 간격 길이는 1, 0의 길이는 4, 1의 길이는 2, 나머지는 3의 길이를 가지고 있다.

 

N을 입력받아 문자 0과 같다면 종료

문자열 N을 for문을 돌려 각 자리를 분리. 그 분리한 문자들을 배열에 넣어준다.

tot변수(총길이)를 만들어주고 배열의 첫 번째 요소부터 마지막 요소까지 검사 후 

검사 요소는

0일 때 길이 4

1일 때 길이 2

2~9일 때 길이 3

tot에 누적시켜준다. (좌, 우 여백을 생각하여 tot을 적정히 써주면? 된다)

 

완성된 코드!👍😊

while True:
    c_list = []
    N = input()
    if N == '0':
        break
    for i in N:
        c_list.append(i)

    tot = 0
    for i in c_list:
        tot += 1
        if i == '0':
            tot += 4
        elif i == '1':
            tot += 2
        else:
            tot += 3
    tot += 1
    print(tot)
profile

망나니 AWOS의 일상

@AWOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!