c라는 정수가 주어졌을 때 

a제곱 * b제곱 = c제곱

인 a, b를 찾는 문제였다. 


c제곱 - a제곱 = b제곱 이라는 것을 이용하여

a, b for문을 두 개 이용하는 것이 아니라 a에 대한 for문 한 개만 이용하여 푸는 방법인데

c제곱 - a제곱의 sqrt(루트)가 자연수이면 그 것은 성립된다는 것으로 생각하면 된다. 


문제는 소수점에 대한 double형인지 소수점 없이 나누어 떨어지는지에 대해서 알 필요가 있다고 생각했다. 

소수판별은 c제곱 - a제곱인 b제곱인 b를


다시 a제곱 * b제곱 == c제곱 인지 검사해줬다.

이렇게 되면 b가 소수점이 나오게 되면 다른 값이 나올 테니까...


테스트케이스 7개까지 통과 했다. 

이 테스트케이스에서 막혔다 ㅡㅡ ㅜ


118276


다시 풀어 봐야 겠다.


--------------------------------

풀렸다

실수를 했다. a에 대한 for문을 돌리면서 습관적으로 int형으로 선언한 뒤에 돌렸다.

생각해보니까 long long으로 선언해서 돌려야 한다. 

for(long long a = 1; a < c; a++)

이런식으로 돌려되는 것을 long long이 아닌 int로 선언해서 된 오류였다.




'알고리즘문제풀이' 카테고리의 다른 글

더블릿_소인수분해  (0) 2015.04.03
더블릿_인수분해  (0) 2015.04.03
2504_괄호의 값  (0) 2015.04.02
2493_탑  (0) 2015.04.01
1068_트리  (0) 2015.04.01
Posted by slender ankles
,