[백준] 1193번 (python 파이썬) 분수찾기 / [구름레벨] 뱀 유리수 수열

2021. 4. 14. 23:13발돋움/알고리즘

728x90
반응형

 

728x90

백준 1193번 문제와 구름레벨의 뱀 유리수 수열은 같은 문제이다.

개인적으로 구름 레벨이 그림이 있어서 문제를 이해하기 쉬웠다.

나는 수학을 잘 몰라서 노가다로 2차원 배열형태로 바꿔서 이것저것 해보면서 규칙과 의미를 찾았는데

스터디를 같이 하시는 분이 군수열로 접근하면 된다고 하셨다.

오늘 군수열이란걸 처음 알게되었다 'ㅁ'

고교과정에서 배웠었다는데 기억이 없다.

 

아무튼 아래가 풀이과정이다.

말로 설명하기 뭔가 복잡해서 밑의 풀이의 흐름을 따라가면서 이해해보길 바란다.

이동해야하는 수를 구할때 myrange - 1을 하는 이유는 해당 집합의 첫 원소를 기준점으로 잡아서 이동해야하는 수를 구하기 때문이다.

기준점인 한 원소를 제외하기 위해 -1을 해준다고 생각하면된다.

그래도 이해가 안된다면 각 집합의 마지막 원소를 n으로 잡고 구해보면 이해할 수 있다.

마지막 원소의 숫자에서 1에서 해당 집합까지 빼주면 나머지가 0이 된다.

하지만 우리는 첫번째 원소가 기준점이므로 기준점에서 움직여야하여 나머지가 0이 되게 하면 안된다.

탈출문에서 <= 0인 이유도 바로 그것 때문이다.

728x90
반응형