문제
설명
책 순서대로 정렬하는데, 책을 정렬 할 수 있는 방법은 책을 빼서 맨 위에 올려놓는 방법 뿐이다.
입력 받은 책을 나열하고, 뒤에서부터 읽어 순서가 맞지 않은 책의 개수가 정답이다.
뒤에서부터 읽을 때 책이 연속적으로 순서가 맞지 않아도 된다.
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N; // 책의 개수
int answer; // 정답
int main() {
cin >> N;
answer = N;
vector<int> book(N);
for (int i = 0; i < N; i++) {
cin >> book[i];
}
vector<int> sortedBook(N);
copy(book.begin(), book.end(), sortedBook.begin());
sort(sortedBook.begin(), sortedBook.end());
int current = N - 1;
for (int i = N - 1; i >= 0; i--) {
if (book[i] == sortedBook[current]) {
answer--;
current--;
}
}
cout << answer;
return 0;
}
'Koala - 11기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python] 1461번 : 도서관 (0) | 2023.09.03 |
---|---|
[백준/python] 20937번: 떡국 (0) | 2023.09.03 |
[C++] 백준 11256번: 사탕 (0) | 2023.09.03 |
[백준/C++] 19941번: 햄버거 분배 (0) | 2023.09.03 |
[백준/C] 20937번 떡국 (0) | 2023.09.03 |