A,B = map(int,input().split())
if A>B:
A,B = B,A
X,Y = map(int,input().split())
result = []
flag = True
if Y>=abs(X) or Y<0:
flag = False
if flag:
X = abs(X)
value = X*(A//X)+Y
while value<=B:
if A<=value<=B:
if result:
flag = False
break
result.append(value)
value += X
if flag and result:
print(*result)
else:
print('Unknwon Number')
이 문제에서 주의해야할 점은 Y가 X보다 큰게 들어올수도 있으며, 0 미만일수도 있다.
그럴 경우엔 False를 해주고, A,B가 서로 반대로 들어올 수 있는것만 조심해주면 된다.
A~B 사이에서 생길수 있는 최소의 X,Y로 만들수 있는 수를 찾는다.
그리고 난뒤에 X를 늘려가면서, 2개이상의 수가 있을때에는 flag로 Unkwon Number를 출력해주면 된다.
A,B = map(int,input().split())
if A>B:
A,B = B,A
X,Y = map(int,input().split())
X = abs(X)
left_div = A//X
right_div = (B+X)//X
result = []
flag = True
if Y>=abs(X) or Y<0:
flag = False
if flag:
for div in range(left_div,right_div+1):
temp = div*X+Y
if A<=temp<=B:
if result:
flag = False
break
else:
result.append(temp)
if flag and result:
print(*result)
else:
print('Unknwon Number')
이건 반복문을 통해서 구현한 것이다.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 3165 5 (0) | 2021.06.06 |
---|---|
[BOJ/백준] 2623 음악 프로그램 (0) | 2021.06.06 |
[BOJ/백준] 21778 가희와 프로세스 2 (0) | 2021.06.05 |
[BOJ/백준] 21777 리버스 가희와 프로세스 (0) | 2021.06.05 |
[BOJ/백준] 21776 가희의 읽기 쓰기 놀이 (0) | 2021.06.05 |