매우 단순한 수학문제임에도 불구하고 몇 번이고 틀려서 계속 고민하다가 겨우 왜 그런지 알게된 문제라서 이렇게 정리를 해본다.

출처: https://www.acmicpc.net/problem/10093

문제를 보다시피 매우 간단한 문제이다.

다만, 한 가지를 간과한 것이 있어서 계속 틀렸다.

숫자가 예제에서 "8 14" 라고 되어있는데, 잊지 말자... "14 8"도 들어갈 수 있고, "13, 14"도 들어갈 수 있음을...

 

처음에 그래서 매우 간단하게 만든 코드이자 계속 틀렸다고 나온 코드가 다음의 코드이다.

(물론, 위에서 주어진 예제인 "8 14"는 무척이나 잘 돌아간다...)

1
2
3
4
5
num1, num2 = list(map(int, input().split()))
btw_num = num2-num1-1
print(btw_num)
for i in range(num1+1, num2):
    print(i, end=' ')
 

 

그리고 max와 min값을 새로 처리해서 만들어야 한다.

결국 다음과 같은 코드가 정답인 코드이다.

1
2
3
4
5
6
7
8
9
10
a, b = list(map(int, input().split()))
num2 = max(a, b)
num1 = min(a, b)
btw_num = num2-num1-1
if num1 == num2 or num1+1 == num2:
    btw_num = 0
print(btw_num)
for i in range(num1+1, num2):
    print(i, end=' ')
 
cs

 

출처: https://www.acmicpc.net/problem/10093

 

10093번: 숫자

두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

+ Recent posts