250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- C++ 공부하기
- 군대
- 로이커바트 숙소
- 대학생
- 백준으로 C++ 공부
- 시뮬레이션
- 피르스트 자전거
- Replit
- 백준
- porquerolles
- openai api
- 군인
- 코딩
- C++ 공부
- 오리스프
- 백준 C++
- 그린델발트 캠핑장
- 그린델발트 자전거
- auto code review
- 프랑스 남부 섬
- 24524
- C++
- 16236 c++
- 알고리즘
- iles dHyeres
- 1654
- 군대코딩
- 로이커바트
- 융프라우 스위스 패스
- 백준으로 c++ 공부하기
Archives
- Today
- Total
기억보다는 기록을 해볼까
회의실 배정 1931 (백준으로 C++ 공부하기 32일차) 본문
728x90
문제
1931번: 회의실 배정
(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.
www.acmicpc.net
생각
처음 봤을 때 어떻게 해야 할지 막막했다.
다른 사람의 코드도 읽어 봤는데 이게 어떻게 잘 굴러가는 건지 잘 모르겠어서 그것을 참고만 하고 나의 새로운 코드를 작성했다.
먼저 배열을 다 받은 다음에 정렬을 시킨다
전의 끝나는 시간보다 현재의 시작하는 시간이 더 작고
현재의 끝나는 시간이 전의 끝나는 시간보다 작거나 같으면
끝나는 시각을 현재의 끝나는 시각으로 최신화해준다.
전의 끝나는 시간보다 현재의 시작하는 시간이 크거나 같으면 회의가 새로 생기는 것이기 때문에
카운트를 하나 늘려준다.
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<int, int> pii;
int main() {
int n; cin >> n;
vector<pii> v;
for(int i = 0; i < n; i++) {
int a, b; cin >> a >> b;
v.push_back({a, b});
}
sort(v.begin(), v.end());
int cnt = 1;
int prevEndTime = v[0].second;
for(int i = 1; i < n; i++) {
auto[curStartTime, curEndTime] = v[i];
if(curStartTime < prevEndTime) {
if(curEndTime <= prevEndTime) {
prevEndTime = curEndTime;
}
}
else {
cnt++;
prevEndTime = curEndTime;
}
}
cout << cnt;
}
728x90
'백준으로 C++ 공부하기' 카테고리의 다른 글
가장 긴 증가하는 부분 수열 11053 (백준으로 C++ 공부하기 35일차) (0) | 2021.12.15 |
---|---|
이중 우선순위 큐 7662 (백준으로 C++ 공부하기 34일차) (0) | 2021.12.14 |
테트로미노 14500 (백준으로 C++ 공부하기 31일차) (0) | 2021.12.12 |
N과 M (2) 15650 (백준으로 c++ 공부하기 30일차) (0) | 2021.12.11 |
좌표 압축 18870 (백준으로 C++ 공부 29일차) (0) | 2021.12.10 |
Comments