728x90
반응형
Silver IV
# 1065 한수
링크 : https://www.acmicpc.net/problem/1065
풀이
N = int(input())
li = [False] * 1000
def d(n):
text = str(n)
if len(text) <= 2:
li[n] = 1
elif len(text) == 3 and (int(text[0])-int(text[1]) == int(text[1])-int(text[2])):
li[n] = 1
elif len(text) == 4 and (int(text[0])-int(text[1])==int(text[1])-int(text[2])) and (int(text[1])-int(text[2])==int(text[2])-int(text[3])):
li[n] = 1
for i in range(1, N+1):
d(i)
print(sum(li))
후기
- 셀프넘버와 같은 유형의 문제이다.
저장공간 li를 만들고 해당 인덱스의 값이 등차수열이면 1을, 아니면 False로 구분했다.
한 자리 수, 두 자리 수는 문제없이 해당 문제의 등차수열로 분류되는 반면 세 자리 수, 네 자리 수는 각 자리 수 간 관계를 확인해야 한다. - if절에서 a == b == c 도 사용할 수 있나보다
a == b and b == c 로만 사용해야 하는 줄 알았다.
파이썬에서 a == b == c의 사용
일종의 자동 완성 프로그램에 의해서 결과값을 구할 수는 있다. 하지만 일부의 경우 부작동/오작동이 일어나기 때문에 'a==b and b==c and c==a' 와 같이 and로 구분지어 사용하는 것이 바람직하다
https://stackoverflow.com/questions/6304509/are-there-sideeffects-in-python-using-if-a-b-c-pass
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 3053 택시 기하학 (0) | 2022.02.28 |
---|---|
[백준 파이썬] # 18870 좌표 압축 (0) | 2022.02.27 |
[백준 파이썬] # 4673 셀프 넘버 (0) | 2022.02.27 |
[백준 파이썬] # 11727 2xn 타일링 2 (0) | 2022.02.26 |
[백준 파이썬] # 11726 2xn 타일링 (0) | 2022.02.26 |