육각형의 테두리가 한칸씩 늘어날 때 마다 거쳐야하는 횟수도 한개씩 증가한다는 점에 착안 해서 문제를 풀었다.
예를 들어 두번째 테두리인 2~7은 두번 세번째 테두리인 8~19는 세번 거쳐야 찾을수 있다.
이때, 각 테두리의 시작숫자는 이전 테두리 시작숫자에서 6, 12 18순으로 커지고, 각 테두리의 마지막 숫자는 12,18,24순으로 커지는 규칙을 발견했다.
if문으로 조건을 걸 때 if(2 <= n <= 9)
로 걸어서 값이 틀렸엇다. 조건문은 if(2 <=n && n <= 9)
처럼 and 연산자를 사용해서 걸어줘야한다. 간단하지만 무심코 실수 하기 쉽다.
이 문제의 입력값은 1000000000으로 int형으로 표현하기엔 값이 너무 크기때문에 long long으로 받았으며 %lld
로 받으면 된다.
계차수열을 활용해서 좀 더 쉽게 풀이가 가능하다.
시그마 공식은 다음과 같으므로an = 1 + 3n(n - 1) 이 나온다!
n = 1 : an = 1
n = 2 : an = 7
이므로 입력받은 값이 an과 일치한다면 n을 출력하면 되고,
an보다는 크지만 a(n+1)보다는 작거나 같은 범위에 있다면 n+1을 출력하면 된다!
출처: https://aerimforest.tistory.com/98 [Forest]