시험 공부하기 싫다~~~
문제
https://www.acmicpc.net/problem/1946
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.acmicpc.net
오늘의 문제는 신입 사원~~
이것도 회의실 때처럼 비슷하게 하면 될 것 같다는 생각이 들었다.
여기서는 순서대로 입력을 받아서 서류 중심으로 오름차순 정렬을 하고, 서류 순위가 높은 첫 번째 사람의 면접 순위보다 면접 순위가 높은 사람이면 count 해주도록 하면 될 것 같다.
// 틀린 코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, m, count;
cin >> n;
while (n--) {
count = 0;
cin >> m;
vector <pair<int, int>> newp(m);
for (int i = 0; i < m; i++) {
cin >> newp[i].first >> newp[i].second;
}
sort(newp.begin(), newp.end());
for (int i = 0; i < m; i++) {
if (newp[0].second>=newp[i].second) {
count++;
}
}
cout << count << "\n";
}
return 0;
}
흠... 사실 내가 이렇게 풀고 있는 것이 맞나...했는데 역시 예제 문제에 나온 2번째 케이스의 출력값이 나오지 않았다...
+ 추가) 난 바보다... 2번째 케이스의 출력값이 나오지 않은 것이 아니라 다 입력받은 후 출력하는 것이 아니기 때문에 입력값 중간에 출력되었던 것이었다...
여기서 보니 내가 잘못한 것들이 많았다. 처음에 한명은 세어주어야 하기 때문에 count는 1로 초기화해야 하고 마지막에 for문을 돌려줄 때 i를 1부터 시작해야 비교를 할 수 있었다. 그리고 newp [0]. second부분에서 첫 번째인 사람이 무조건 뽑힌다는 보장이 없기 때문에 비교한 후 그 비교한 인덱스로 바꿔줘야 된다.
그래서 다시 고치면 다음과 같은 코드가 완성된다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, m, count;
cin >> n;
while (n--) {
cin >> m;
vector <pair<int, int>> newp(m);
for (int i = 0; i < m; i++) {
cin >> newp[i].first >> newp[i].second;
}
sort(newp.begin(), newp.end());
count = 1;
int temp = 0;
for (int i = 1; i < m; i++) {
if (newp[temp].second>newp[i].second) {
count++;
temp = i;
}
}
cout << count << "\n";
}
return 0;
}
오예~~~~~
이곳에도 잘 설명되어 있으니 참고하면 좋을 것 같다.
https://velog.io/@rhkswls98/%EB%B0%B1%EC%A4%80-1946-C-%EC%8B%A0%EC%9E%85-%EC%82%AC%EC%9B%90
내일은 시험이 있기 때문에 여기까지만 작성해야 할 것 같다.
그럼 Bye Bye~~
'백준 > C++' 카테고리의 다른 글
[C++] 백준 2776번 암기왕 (4) | 2023.12.20 |
---|---|
[C++] 백준 2693번 N번째 큰 수 (0) | 2023.12.19 |
[C++] 백준 2587번 대표값2 (2) | 2023.12.17 |
[C++] 백준 1931번 회의실 배정 (2) | 2023.12.16 |
[C++] 백준 2309번 일곱 난쟁이 (4) | 2023.12.15 |