문제 (요약)
주어진 수열이 문제에서 정의한 순열인지 판단하라.
길이 N인 순열은 1부터 N까지의 자연수를 중복 없이 순서에 상관없이 모두 사용하여 만든 수열을 의미한다.
접근
입력된 수열을 검사하여 모두 1회씩 출현했는지 확인한다.
풀이
#include<iostream>
#include<vector>
using namespace std;
string fnSolve(vector<int> &v, int N) {
for (int i = 1; i <= N; i++) {
if (v[i] != 1) {
return "No";
}
}
return "Yes";
}
int main(int argc, char** argv)
{
FILE* stream;
freopen_s(&stream, "sample_input.txt", "r", stdin);
int T;
cin >> T;
for (int t = 1; t <= T; t++) {
int N;
cin >> N;
vector<int> v(N+1);
for (int i = 0; i < N; i++) {
int idx;
cin >> idx;
v[idx] += 1;
}
cout << "#" << t << " " << fnSolve(v, N) << endl;
}
return 0;
}
'알고리즘 트레이닝 > SW Expert Academy' 카테고리의 다른 글
9839. 최고의 쌍 (0) | 2020.05.02 |
---|---|
8676. 동현이와 한결이는 아이돌 (0) | 2019.11.06 |
8821. 적고 지우기 (0) | 2019.11.01 |
8658. Summation (0) | 2019.10.09 |
1206. [S/W 문제해결 기본] 1일차 - View (0) | 2019.09.16 |