<문제>
https://www.acmicpc.net/problem/25494
<풀이>
처음에는 나머지의 쌍을 찾는 문제인줄 알고 0,0,0 일 수 있는 경우는 왜 문제에 없지.. 라는 생각을 했었습니다. 그렇지만 문제를 자세히 읽어보니 나머지의 쌍이아니라 나머지가 같은 경우를 포함한 x,y,z의 쌍을 구하는 문제였습니다.
처음에 작성한 코드입니다.
< FAIL >
N = int(input())
for _ in range(N):
a = list(input().split())
a.sort()
print(a[0])
a,b,c를 그냥 리스트 a하나로 받았고, 이 3 값중 가장 작은 값이 조건을 만족하는 수라는 생각을 했었습니다. 그래서 오답판정을 받게 되었죠... 반례로는 x = 1 y = 3 z = 2 일때도 나머지값이 일치할 수있다는 것을 볼 수 있었습니다.
<PASS>
N = int(input())
for _ in range(N):
count = 0
a,b,c = map(int,input().split())
x = [i for i in range(1,a+1)]
y = [j for j in range(1,b+1)]
z = [v for v in range(1,c+1)]
for i in x:
for j in y:
for v in z:
if (i%j) == (j%v) and (j%v) == (v % i):
count+=1
else:
continue
print(count)
그래서 삼중 for문을 이용해 modular연산의 결과를 문제의 조건에 맞게 if else로 판별할 수 있도록 코드를 구현해 보았습니다.
N = int(input())
for _ in range(N):
count = 0
a,b,c = map(int,input().split())
x = range(1,a+1)
y = range(1,b+1)
z = range(1,c+1)
for i in x:
for j in y:
for v in z:
if (i%j) == (j%v) and (j%v) == (v % i):
count+=1
print(count)
https://dojang.io/mod/page/view.php?id=2192