지나가던 개발자

[Python] 백준 2577번(숫자의 개수) 문제 풀이 본문

PS/Python

[Python] 백준 2577번(숫자의 개수) 문제 풀이

KwonYongHyeon 2022. 2. 15. 14:55

 

abc = []
for i in range(3):
    abc.append(int(input()))
abc = list(str(abc[0]*abc[1]*abc[2]))
for i in range(10):
    print(abc.count(str(i)))

 

 리스트에서 특정 요소를 세는 법은 저번에 포스팅했었다.

 

 숏코딩들을 둘러보다가 다른 사람의 코드도 하나 발견했는데, 가장 기억에 남는 코드를 하나 올려볼까 한다.

 

import math
A = input()
A = int(A)
B = input()
B = int(B)
C = input()
C = int(C)
D = A * B * C
if D > 9999999:
    if D > 99999999:
        D1 = D%10
        D2 = math.floor(D/10)%10
        D3 = math.floor(D/100)%10
        D4 = math.floor(D/1000)%10
        D5 = math.floor(D/10000)%10
        D6 = math.floor(D/100000)%10
        D7 = math.floor(D/1000000)%10
        D8 = math.floor(D/10000000)%10
        D9 = math.floor(D/100000000)%10
        D_list = [D1, D2, D3, D4, D5, D6, D7, D8, D9]
        print(D_list.count(0))
        print(D_list.count(1))
        print(D_list.count(2))
        print(D_list.count(3))
        print(D_list.count(4))
        print(D_list.count(5))
        print(D_list.count(6))
        print(D_list.count(7))
        print(D_list.count(8))
        print(D_list.count(9))
    else:
        D1 = D%10
        D2 = math.floor(D/10)%10
        D3 = math.floor(D/100)%10
        D4 = math.floor(D/1000)%10
        D5 = math.floor(D/10000)%10
        D6 = math.floor(D/100000)%10
        D7 = math.floor(D/1000000)%10
        D8 = math.floor(D/10000000)%10
        D_list = [D1, D2, D3, D4, D5, D6, D7, D8]
        print(D_list.count(0))
        print(D_list.count(1))
        print(D_list.count(2))
        print(D_list.count(3))
        print(D_list.count(4))
        print(D_list.count(5))
        print(D_list.count(6))
        print(D_list.count(7))
        print(D_list.count(8))
        print(D_list.count(9))
else:
    D1 = D%10
    D2 = math.floor(D/10)%10
    D3 = math.floor(D/100)%10
    D4 = math.floor(D/1000)%10
    D5 = math.floor(D/10000)%10
    D6 = math.floor(D/100000)%10
    D7 = math.floor(D/1000000)%10
    D_list = [D1, D2, D3, D4, D5, D6, D7]
    print(D_list.count(0))
    print(D_list.count(1))
    print(D_list.count(2))
    print(D_list.count(3))
    print(D_list.count(4))
    print(D_list.count(5))
    print(D_list.count(6))
    print(D_list.count(7))
    print(D_list.count(8))
    print(D_list.count(9))

 

 

 무려 2022년 2월 15일 기준 파이썬 숏코딩 20558위를 기록한 무시무시한 코드로, 솔직히 말해서 어떤 식의 코든지 잘 이해는 못하겠지만 기억에는 남는다. 35504684번 코드로, tnocdam 님이 짜셨다.

Comments