티스토리 뷰
반응형
https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net
⊙ 문제
⊙ 입력
⊙ 출력
⊙ 예제 입출력
⊙ 알고리즘 분류
- 정렬
⊙ 문제 접근 과정
vector의 pair를 이용하여 int와 string을 같은 index에 저장해줬다.
나이에 대해 정렬은 직접 구현하였고 순서대로 정렬한 int에 대해서 나이와 이름을 출력해줬다.
하지만 계속 틀리다고 나왔다. (정신 나갈뻔)
나이에 대해서만 정렬해주어서 같은 나이면 입력한 순서대로 정확히 나왔다.
그렇지만 우리는 sort() 함수가 아닌 원래의 순서를 지켜주며 정렬하는 stable_sort() 함수를 사용해야 했다.
그리고 마지막에 sort 함수 앞에 stable를 추가해준 코드가 아래 코드다.
⊙ 문제 풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N;
vector<pair<int,string>> v;
//비교 함수 직접 구현(나이에 대해서만)
int compare(const pair<int,string> &a, const pair<int,string> &b) {
return a.first < b.first;
}
int main() {
cin >> N;
//배열에 값 넣기
for(int i=0;i<N;i++) {
int age;
string name;
cin >> age >> name;
v.push_back({age,name});
}
//순서 손상 X 정렬(나이만)
stable_sort(v.begin(),v.end(),compare);
//값 출력
for(int i=0;i<N;i++) {
cout << v[i].first << " " << v[i].second << "\n";
}
}
⊙ 결과
⊙ 마무리
NONE
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형
'백준 온라인 저지 [BOJ] > C++ [CPP]' 카테고리의 다른 글
[백준(BOJ)] 16235번 : 나무 재테크 - C++[CPP] (0) | 2021.08.21 |
---|---|
[백준(BOJ)] 4949번 : 균형잡힌 세상 - C++[CPP] (0) | 2021.08.19 |
[백준(BOJ)] 2775번 : 부녀회장이 될테야 - C++[CPP] (0) | 2021.08.19 |
[백준(BOJ)] 9465번 : 스티커 - C++[CPP] (0) | 2021.08.18 |
[백준(BOJ)] 21278번 : 호석이 두 마리 치킨 - C++[CPP] (0) | 2021.08.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 풀이
- 쉽게배우는자바프로그래밍
- 답
- 문자열
- Python
- java
- OS
- C++
- 자바스크립트
- CPP
- 그리디
- 알고리즘
- 정리
- 연습문제
- 쉽게 배우는 자바 프로그래밍
- 자바
- 프로그래머스
- py
- 우종정
- 파이썬
- 운영체제
- 정렬
- 해답
- 구현
- 쉽게배우는
- BFS
- 백준
- Web
- 정답
- JS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함