본문 바로가기
2022-2/coding, setting ..

BaekJoon | 1065번: 한수(파이썬)

by 이망고_ 2022. 5. 26.

등차수열.. 이라기보다는 각 자리의 차이가 일정하다면 한수라고 본다고 해석하는 것이 이해하는 데 나았다

두 자리 수가 있을 경우 차이는 하나만 존재하는데 이런 것도 등차수열이라고 볼 수 있는지는 의문..

hansu = N

두 자리의 수까지는 그 차가 일정하다고 하여 한수라고 보고

 

문제는 세 자리 숫자부터 세어주는 것

​hansu = 99

   hansu +=1

카운트로 일일이 하지 않고, 99까지가 한수이고 그 다음부터 += 로 해서 세어주게 하였다

 

if numList[0] - numList[1] == numList[1] - numList[2]

세 자리 수를 비교할 때 첫번째 두번째 차이가 틀리면 틀리는 것이니, 요렇게만 설정해주어도

조건이 1000보다 같거나 작은 수이니 1000포함, 999까지 비교 

 

for i in range(100, N+1):

  numList = list(map(int, str(i))

자리 수 비교는 int 를 str 로 만들어 주는 것인데, map 함수를 사용하여 str 화 해주고 비교해주고 리스트에 담아주기

그리고 리스트 인덱스 이용하여 차이가 같으면 한수로 세어준다 count 안 해줘도 됨, 

초기값 99 로 설정하고 그 이후 조건에 맞으면 99 + 1 = 로 설정해주었다 

 

함수를 정의해주었으니

프린트문에서 사용