BOJ
백준(BOJ) 1338 알 수 없는 번호(Python)
juLeena
2022. 7. 30. 20:58

수학 문제.
입력받는 수가 양수인지 음수인지, 수의 범위가 모두 보장되어 있지 않기 때문에 이를 모두 고려해줘야 한다.
입력받은 범위에서 가장 작은 값을 기준으로, x로 나눈 나머지가 y인 가장 작은 값을 구한다.
그 수가 입력받은 범위 내에 존재하는지를 체크하고, 그 수에 x를 더한 값이 범위 내에 존재하지 않는다면 그 수를 출력하고, 그렇지 않으면 Unknwon Number를 출력한다.
코드는 다음과 같다.
a,b=map(int,input().split())
x,y=map(int,input().split())
if x==0:
print('Unknwon Number')
elif y<0 or y>=abs(x):
print('Unknwon Number')
elif x>0:
if a>b:
a,b=b,a
k=a%x
if k<=y:
ans=a-k+y
else:
ans=a+x-k+y
if ans<=b:
if ans+x<=b:
print('Unknwon Number')
else:
print(ans)
else:
print('Unknwon Number')
elif x<0:
if a>b:
temp=a
a=b
b=a
k=a%x
if k<0:
k+=-x
if k<=y:
ans=a-k+y
else:
ans=a+x-k+y
if ans<=b:
if ans-x<=b:
print('Unknwon Number')
else:
print(ans)
else:
print('Unknwon Number')
분기 나누기 귀찮은 문제.
음수로 나눈 나머지가 음수가 나와서, 이를 처리해줘야 했다.