1. Problem
2. My Solution
import sys
def func(num):
global count
numList = list(map(int,list(str(num))))
d1 = numList[0] - numList[1]
for i in range(1,len(numList)-1):
d2 = numList[i] - numList[i+1]
if d1 != d2:
return
count += 1
n = int(sys.stdin.readline().strip())
count = 0
if n < 100:
count = n
else:
for num in range(100,n+1):
func(num)
count += 99
print(count)
3. Others' Solutions
import sys
def func(num):
global count
numList = list(map(int,list(str(num))))
valid = set()
for i in range(0,len(numList)-1):
valid.add(numList[i] - numList[i+1])
if len(valid) == 1: # 모두 같은 값 (=등차수열)
count += 1
n = int(sys.stdin.readline().strip())
count = 0
if n < 100:
count = n
else:
for num in range(100,n+1):
func(num)
count += 99
print(count)
4. Learned
전역변수를 함수내에서 변경하기 위해선 함수내에서 global 지정해야함 (숫자 자료형만 해당)
단지 읽는 것은 global 키워드를 지정하지 않아도됨
모두 같은 값인지 판별하기 위해서는 set 자료형을 사용해보자