패턴 길이가 60일 때 while문을 돌고 있는 경우, break문을 통해 빠져나오면 패턴의 길이가 61인 채로 출력이 되네요..
while문의 조건을 len(pattern)<=59 으로 수정하니 됩니다.
1341번 - 사이좋은 형제
패턴 길이가 60일 때 while문을 돌고 있는 경우, break문을 통해 빠져나오면 패턴의 길이가 61인 채로 출력이 되네요..
while문의 조건을 len(pattern)<=59 으로 수정하니 됩니다.
문제 조건에서 a와 b는 서로소이기 때문에 a/b=1이 나올수 없어서 그 경우는 제외했습니다.
b는 1보다 크거나 같은 정수입니다..
댓글을 작성하려면 로그인해야 합니다.
minjyo8823 3년 전
제가 생각한 방법은 다음과 같습니다. (영식: x, 민식: y)
x가 항상 먼저 먹는다고 가정하면(x<y이면 x와 y의 값을 스왑) x가 첫번째 이후로 먹어야할 케이크의 양은 totalX = a/b - 1/2 이고,
i번째 순서마다 먹을 케이크의 양은 2^(-i) 입니다.
만약 2^(-i) > totalX 라면 x가 먹어야하는 양보다 더 많이 먹게 되므로 그 케이크는 y에게 주고, 아니라면 x에게 주어집니다.
이러한 과정을 계속 반복하다( x가 먹은 양/y가 먹은 양) 의 값이 처음에 입력값으로 구한 n 값과 같다면 그동안 저장한 패턴 값을 출력합니다.
이전글에서 올려주신 코드와 제 코드를 같이 돌려보면서 케이스들을 여러 개 넣어보았는데 모두 일치해서..
어느 부분에서 틀린건지 도무지 모르겠습니다....
넣은 예시들: 2 3, 4 5, 1 5, 4 9, 8 15, 107 127