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 |