문제
n이 가진 한수 개수를 출력하라,
한수는 어떤 양의 정수 X의 각 자리가 등차수열을 이루는 수이다.
브루트포스
무차별 대입으로 해를 구하는 방식이다.
내 코드
x = int(input())
cnt = 0
for n in range(1,int(x)+1):
if n//10 <=9:
cnt += 1
lst = [int(nn) for nn in str(n)]
if len(lst)>2:
d = lst[0] - lst[1]
flag = True
for idx in range(len(lst)-1):
if d != lst[idx] - lst[idx+1]:
flag = False
break
if flag:
cnt += 1
print(cnt)
배울 코드
if x < 100:
print(x)
else:
print(len(list(filter(lambda x: int(str(s)[2]) == 2*int(str(x)[1])- int(str(x)[0]), range(111,x+1))))+99)
filter를 풀어쓰면 아래처럼 된다!
x = int(input())
cnt = 0
if x < 100:
print(x)
else:
cnt = 99
for s in range(111, x+1):
if int(str(s)[2]) - int(str(s)[1]) == int(str(s)[1]) - int(str(s)[0]):
cnt += 1
print(cnt)
'⚡️algorithm' 카테고리의 다른 글
[프로그래머스] dictionary 한줄로 구성하기 (0) | 2022.06.23 |
---|---|
[구현] 이코테, 프로그래머스 문자열 압축 (0) | 2022.06.14 |
[문자열] 프로그래머스 lv2. 방금그곡 (0) | 2022.05.31 |
[조합, 자료구조] 프로그래머스 lv2. 후보키 (0) | 2022.05.31 |
[스택] 프로그래머스 lv1. 크레인 인형뽑기 게임 (0) | 2022.05.30 |