
>>문제

>>예제 입출력


>>idea
위 문제를 풀이하기 위해선
등차수열에 대한 정의를 명확하게 이해할 필요가 있음
>> 수열과 등차수열의 정의
수열 : 수의 나열
등차수열 = 나열된 각 수의 차이가 같음(등차)
point1) 두 자리 숫자까지는 모두 등차수열이다.
-한 자리 숫자 => 나열된 수가 하나인 수열(초항)
ex) 입력값 : 1 => 초항이 1인 등차수열
-두자리 숫자 => 나열된 수가 두개인 등차수열(초항 / 초항+공차)
ex) 입력값 : 14 => 1 --- 4 [초항이 1이고 공차가 3인 등차수열]
결론 : 두자리 숫자까지는 모두 등차수열
=> 만약 입력값인 n이 두자리 숫자라면 1부터 n까지 모두 등차수열이므로 출력값도 n
point2) 세자리 숫자에서 어떻게 각 숫자를 분리할 것인가?
예를 들어 123이 주어졌다면, 이것을 각각 1,2,3으로 어떻게 나눌까?
방법1. divmod 나눗셈 활용(비추천)
divmod(x,y) => (a,b)
a = x/y의 몫을 반환함
b= x/y의 나머지를 반환함
이런것처럼
number = 123이라면
divmod(123,10) => (12,3)
divmod(12,10)=> (1,2)
divmod(1,10) => (0,1)
로 각각 1,2,3을 리스트에 담아 분리 가능
=> 그러나 위 방식은 반복문 코드를 짜주어야함.
=> but, 각 숫자를 여러번 쓸 것이라면 리스트에 담아두는 것도 괜찮
방법2. 숫자를 문자열로 바꾸어 인덱싱

=> 자리수를 알고 있기에 가능
point3 . 등차수열을 어떻게 판단할 것인가?

a,b,c가 등차 수열을 이룰 때 => 2b = a+c를 활용
예1)
n = 123일 때
2*2 = 1+3 => 등차수열
예2)
n=134일 때
3*2 = 1+4 => 등차수열 아님
>> 나의 정답

'백준 문풀' 카테고리의 다른 글
| (파이썬) 백준 2108번 최빈값 구하기 : counter 모듈을 활용한 시간초과 극복 (0) | 2023.01.07 |
|---|---|
| (파이썬 )백준 10989번 : 수 정렬하기3 / 메모리 초과 극복법 (0) | 2023.01.06 |
| 백준 문제풀이 : 4673번(셀프 넘버) / set 차함수 아이디어 (0) | 2022.11.12 |
| 백준 문제풀이 - 5597(연속된 정수로 리스트 만들기) / 3052(set으로 중복값 없애기)/ 4344(소수 n번째 자리까지 강제적으로 0채우기) (1) | 2022.11.12 |
| 백준 문제풀이 - sys.stdin.readline / 끝을 모르는 테스트 케이스 개수 / 10951 / 더하기 사이클 (1) | 2022.11.11 |