[백준] 숫자 10093

Su-hyeon B·2022년 10월 14일
0
post-custom-banner

문제

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

입력

두 정수 A와 B가 주어진다.
8 14

출력

첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다.
둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다.
5
9 10 11 12 13

풀이

풀이 1

#include <bits/stdc++.h>
using namespace std;

int main (void){
    long long a, b;
    cin >> a >> b;
    
    cout << b-a-1 <<"\n";
    
    for(long long i=a+1; i<b; i++){
        cout << i<<" ";
    }
    
    return 0;
}

틀렸음!
왜???

풀이 2

#include <bits/stdc++.h>
using namespace std;

int main (void){
    long long a, b;
    cin >> a >> b;
    
    if(a>b) swap(a,b);
    cout << (b-1)-(a+1)+1<<"\n"; //9-13 4+1 
    
    for(long long i=a+1; i<b; i++){
        cout << i<<" ";
    }
    
    return 0;
}

풀이 3

#include <bits/stdc++.h>
using namespace std;

int main (void){
    long long a, b;
    cin >> a >> b;
    
    if(a>b) swap(a,b);
    if(a==b) cout << 0;
    else{
        cout << (b-1)-(a+1)+1<<"\n"; // 9 9 -> 8-10+1
    }
    
    for(long long i=a+1; i<b; i++){
        cout << i<<" ";
    }
    
    return 0;
}
  • 같은 숫자가 들어왔을 때를 처리해주지 않아서 계속 틀렸던 거였다....
  • 아니 그러면 같은 숫자가 들어올 수 있다고 명시해주던가!!
profile
ML/AI Engineer
post-custom-banner

0개의 댓글