백준 1065: 한수 : 파이썬

태훈입니다·2022년 12월 2일
0

정답 코드:

N = int(input())
cut = 0
for i in range(1,N+1):
  if i < 100:
    cut += 1
  else:
    b = str(i)
    if int(b[0])-int(b[1]) == int(b[1])-int(b[2]):
      cut +=1
      
      
      
print(cut)

코드 풀이:

먼저 N을 입력 받고,
한수를 셀 cut 를 0으로 선언한다.
반복문을 통해 문제에서 제시한
1보다 크고, N보다 작거나 같은 수들의 범위를 설정 후 
100보다 작을 땐 cut 를 1씩 증가시키고(2자리수까지는 다 한수)
세 자리 수일 때 계산을 하기 위해
b = str(i) 로 선언해서 
100의 자리 - 10의 자리 == 10의 자리 - 1의 자리 일 경우
한수로 취급해 cut += 1 을 하게 해줬다.
이 때 문자열로 바꾸지 않고
각 자리수를 i // 100 , i % 100 // 10 등으로
표현할 수 있으나, 전 문제인 셀프넘버에서 고생을 한 기억에
str으로 변환해서 문제를 해결해보았다!
profile
개발 공부를 하고 있는 비전공자입니다!

0개의 댓글