9924번 The Euclidean Algorithm
이왜틀?
9924번 The Euclidean Algorithm - 백준
이건 또 무슨일이래
브론즈 3문제에서 무슨 사고가 일어난거지?
String[] arr=br.readLine().split(" ");
int a=Integer.parseInt(arr[0]);
int b=Integer.parseInt(arr[arr.length-1]);
if(b>a) {
int t=b;
b=a;
a=t;
}
int c=0;
while(true) {
if(a%b==0) {
c+=a/b-1;
break;
}else {
c+=a/b;
int t=a%b;
a=b;
b=t;
}
}
bw.write(c+"");
이상한데… 맞는 것 같은데?
설계
유클리드 호제법에 관련된 문제.
고대의 유클리드 호제법은 뺄셈을 반복하며 진행하며 3단계로 이루어진다.
이를 몇 번 실행했는가에 관련된 문제인데…
아무리 예제를 넣어봐도 틀린게 없는 것 같다.
이상하네 파이썬으로 포팅해보자.
어쩌면 입력데이터에 공백 이슈가 있을 수도?
구현
A, B = map(int, input().split())
if (B > A):
temp = B
B = A
A = temp
result = 0
while (True):
if (A % B == 0):
result += A // B - 1
break
else:
result += A // B
temp = A % B
A = B
B = temp
print(result)
채점
아니 뭐임? 맞잖아!!!!!!!!
공백 문제가 맞는 것 같다.
억울하니 java 소스에 공백 판정을 새로 넣어서 돌려보자.
진짜 어이없네…
반성
좀 오래된 외국 문제에 이런 경우가 많다.
입력 공백이 지멋대로인 경우 말이다.
사실 자바 Scanner 유틸을 썼으면 아무 문제 없었는데 Scanner 성능에 대한 불신과 피해망상 때문에 BufferedReader로 받아 직접 파싱하려한게 문제.
코드 확인