맛동산

(파이썬)백준 알고리즘 1065번 한수 본문

파이썬/알고리즘

(파이썬)백준 알고리즘 1065번 한수

오지고지리고알파고포켓몬고 2016. 12. 19. 21:39

백준 알고리즘 저지 1065번 문제 (https://www.acmicpc.net/problem/1065)



한수를 구하는 문제.

1~99까지는 원소의 개수가 2개 이하이므로 모두 한수에 속함.

그 이후는 111, 123 ... 등의 숫자가 등차 수열을 이룸


사실 더 좋은 방법이 있겠지만 1000보다 작은수(~999까지) 이므로 세자리 수 일때에 관한 함수를 만듬.

h - hundred, t - ten, o - one = 100의 자리, 10의 자리, 1의 자리를 뜻함(비루한 영어 실력에 눈물ㅜㅜ)



 
def ct(i):
    count=0
    for input in range(1,i+1):
        if(input<100):count+=1
        elif(input<1000):count+=func100(input)
        else:pass
    return count
def func100(num):
    h,t,o=str(num)[0],str(num)[1],str(num)[2]
    h,t,o=int(h),int(t),int(o)
    if h-t==t-o:
        return 1
    else:
        return 0
n=int(input())
print(ct(n))


길을 헤메일 누군가를 위해 코드를 공유하지만 이 글을 보고 있다면 문제 해결방법을 충분히 고민한 뒤에 찾아보는 것이길 바람

(추가적으로 알고리즘은 현답은 있지만 정답이 없는 문제라고 생각함.. 더 나은 풀이법이 있다면 다같이 공유할 수 있었으면 좋겠음!)

Comments