문제 링크입니다: https://www.acmicpc.net/problem/2012
2012번: 등수 매기기
첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다.
www.acmicpc.net
그리디하게 접근하면 되는 문제였습니다.
N이 최대 500,000이기 때문에 결과의 자료형은 long long으로 해줘야하는 것이 핵심이였습니다.
예상 등수를 오름차순으로 정렬한 후 순서대로 등수를 부여하면서 차이를 더해나가면 되는 문제였습니다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <vector> | |
#include <algorithm> | |
using namespace std; | |
int main(void) | |
{ | |
ios_base::sync_with_stdio(0); | |
cin.tie(0); | |
int N; | |
cin >> N; | |
vector<int> v; | |
for (int i = 0; i < N; i++) | |
{ | |
int num; | |
cin >> num; | |
v.push_back(num); | |
} | |
sort(v.begin(), v.end()); | |
long long result = 0; | |
for (int i = 1; i <= N; i++) | |
{ | |
result += abs(i - v[i - 1]); | |
} | |
cout << result << "\n"; | |
return 0; | |
} |


개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
백준 10867번 중복 빼고 정렬하기 (0) | 2019.10.22 |
---|---|
백준 16120번 PPAP (0) | 2019.10.22 |
백준 2457번 공주님의 정원 (0) | 2019.10.22 |
백준 3036번 링 (0) | 2019.10.21 |
백준 15736번 청기 백기 (0) | 2019.10.21 |