[Python] 백준알고리즘 #1065

r1verfuture·2021년 12월 14일
0

백준알고리즘

목록 보기
49/110

📝 문제

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.

⌨️ 입력

첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.

🖨 출력

첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.

⌨️ 예제 입력 1

110

🖨 예제 출력 1

99

⌨️ 예제 입력 2

1

🖨 예제 출력 2

1

⌨️ 예제 입력 3

210

🖨 예제 출력 3

105

⌨️ 예제 입력 4

1000

🖨 예제 출력 4

144

⌨️ 예제 입력 5

500

🖨 예제 출력 5

119

📚 내가 제출한 코드

myNum = int(input())
if myNum <= 99:
  print(myNum)
elif myNum <= 110:
  print(99)
else:
  count = 99
  for num in range(111,myNum + 1):
    numArr = list(map(int, str(num)))
    diff = numArr[0] - numArr[1]
    temp = numArr[1]
    for n in numArr[2:]:
      if temp - n != diff:
        break
      else:
        temp = n
      if n == numArr[-1]:
        count += 1
  print(count)

✏️ 내가 제출한 코드에 대한 설명

  • 1부터 99까지는 모두 한수이다.
  • 100부터 110까지는 한수가 하나도 없기 때문에 99개로 동일하다.
  • input() : 키보드로 입력한 값을 받는 함수
  • range(a, b) : a부터 b-1까지의 정수가 포함된 리스트를 반환하는 함수
  • map(a, b) : b의 원소 하나하나를 a에 대입한 것을 반환하는 함수
  • 메모리 : 29200 KB
  • 시간 : 76 ms
  • 코드 길이 : 383 B
profile
#iOS #Swift #Developer #Python

0개의 댓글