벽을 한 번 부신다!!


코드가 길지 않으니 설명은 없다.


1^14 의 square root 는 1^7이다.

1^7까지의 소수만 구해주면 된다.


그래서 2~1^7까지의 소수를 구하고, 


primeNumber에 소수들을 넣어준다.


primeNumber에 들어간 소수들로 

max => n * primeNumber[i]를 계산해준다.


여기서 주의해야 될 점이 n이 long long을 넘어가는 경우다.


하지만 이항을 해서

max / n >= primeNumber[i]로 변경할 수 있다.


그리고 min >=의 경우를 구해야줘야 되는데, 이미 while loop에서 체크를 해줘서 밑에서는 체크를 안해줘도 된다.

용액의 특성값이 중복이 된다는 생각을 안하고 풀어서 1일이 걸렸다.


코드의 변화가 많이 있었는데

처음에는 순차적으로 검색하는걸 작성하다가 시간초과가 날 예상을 하고 안짰다.

다음에는 순차적으로 하는데 idx를 저장해서 그 idx만큼만 돌게했다. 시간초과

다음에는 l과 r을 두고 만나는 방식으로 했는데 틀렸다. 양수와 음수를 가지고 계산함.

다음에는 양수와 음수를 생각하지 않고 l과 r을 두고 만나는 방식을 사용함. (정답)


오븐시계에서 초만 추가해줬다.

시간이 그렇게 큰게 아니여서 걍 반복문으로 처리함


파싱해올 여건이 안돼서 배열에 있는 내용은 가져왔다.

출력하는 부분 코드를 약간 바꿈


소수 계산은 아직 익숙하지가 않다.


그래서 다른 답들을 참고해봤는데, 문자열로 받아서 정수형으로 변환하고 처리하는게 많은거 같다.

또는 아주작은 숫자를 더해서 반올림 해주는거 같다.


     C(n+1) = C(n)/2     (C(n)이 짝수일 때)
            = 3*C(n)+1   (C(n)이 홀수일 때)

점화식이 이미 세워져있는걸 코드로 구현하면 된다.

다익스트라 알고리즘을 2번 돌린다.


while loop에서 모두 처음에

t에 X를 넣어주고, i -> t, t -> i 의 minimum distance를 구한다.

간선이 있으면, 값을 체크해서 넣어주고

visited[t] = true로 만들고 다음 반복으로 간다.


그 다음부터는 더 짧은 거리가 있다면, 업데이트 해준다.


결론적으로 구하는 방법은 i -> t 갈 때, t -> i 갈때 를 구해서 더해준다.


i -> 와 t -> 의 경로는 다를 수 있다.


+ Recent posts