반응형
연습문제1) 다음과 같이 숫자의 범위가 주어지면 그 수가 1부터 시작해서 어디까지 이어지는지 판단을 하시오.
입력형식은 처음 n 이 나오고
그 다음 n개의 줄에 범위의 시작 위치와 끝 위치가 나옵니다.
단 n의 범위는 1~100000 사이
입력예)
4
1 10
10 20
20 30
30 40
출력 예)
40
입력예)
4
10 30
1 20
50 90
10 15
출력예)
30
더보기
#include <iostream>
#include <cmath>
#include <queue>
#include <algorithm>
using namespace std;
struct data{
int s,e;
};
struct data D[100010];
int n;
bool cmp(struct data l, struct data r)
{
return l.s < r.s;
}
int main()
{
cin >> n;
for(int i=0;i<n;i++) cin >> D[i].s >> D[i].e;
sort(D,D+n,cmp);
int start = 1;
int last = 1;
for(int i=0;i<n;i++)
{
start = D[i].s;
if(start<=last)
{
///연결이 된다.
last = max(last, D[i].e);
}
else{
///연결이 되지 않는다.
break;
}
}
cout <<last;
return 0;
}
#include <cmath>
#include <queue>
#include <algorithm>
using namespace std;
struct data{
int s,e;
};
struct data D[100010];
int n;
bool cmp(struct data l, struct data r)
{
return l.s < r.s;
}
int main()
{
cin >> n;
for(int i=0;i<n;i++) cin >> D[i].s >> D[i].e;
sort(D,D+n,cmp);
int start = 1;
int last = 1;
for(int i=0;i<n;i++)
{
start = D[i].s;
if(start<=last)
{
///연결이 된다.
last = max(last, D[i].e);
}
else{
///연결이 되지 않는다.
break;
}
}
cout <<last;
return 0;
}
연습문제2) 다음과 같이 숫자의 범위가 주어지면 그 수가 20 부터 시작해서 어디까지 이어지는지 판단을 하시오.
입력형식은 처음 n 이 나오고
그 다음 n개의 줄에 범위의 시작 위치와 끝 위치가 나옵니다.
단 n의 범위는 1~100000 사이
입력예)
4
1 10
10 20
20 30
30 40
출력 예)
40
입력예)
4
10 30
1 20
50 90
10 15
출력예)
30
연습문제3) 다음과 같이 숫자의 범위가 주어지면 그 수가 20 부터 시작해서 90 까지 최소 갯수의 구간을 선택해서 연결할 수 있는지 판단하시오. 만약 연결 되지 않는다고 하면 -1 을 출력하시오.
입력형식은 처음 n 이 나오고
그 다음 n개의 줄에 범위의 시작 위치와 끝 위치가 나옵니다.
단 n의 범위는 1~100000 사이
입력예)
4
1 30
10 20
30 90
20 90
출력 예)
1
입력예)
4
10 30
1 20
50 90
10 15
출력예)
-1
반응형
'프로그래밍언어문법 > 실력키우기문제' 카테고리의 다른 글
3431: 개구리 점프 연습문제 (0) | 2021.07.10 |
---|---|
1006 : 로봇- 연습문제 (0) | 2021.07.10 |
1733.오목 연습문제 (0) | 2021.07.07 |
1336 : 소수와 함께 하는 여행 - 연습문제 (0) | 2021.06.26 |
소수 만들기 문제 (0) | 2021.06.26 |