전화번호 목록
문제 링크: https://www.acmicpc.net/problem/5052
sort로 string을 정렬하면 사전순으로 정렬된다.
이를 이용하여 정렬 후 현재 데이터가 다음의 데이터 부분에 속하게 되면, 일관성이 유지되지 않았다는 것을 의미한다.
- 정답 코드
#include<iostream> #include<algorithm> #include<vector> using namespace std; bool compare(string a, string b) { return a.size() < b.size(); } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t; cin >> t; while (t--) { bool flag = true; int n; cin >> n; vector<string> list(n); for(int i = 0;i<n;i++) { cin >> list[i]; } //사전순 정렬 sort(list.begin(), list.end()); for (int i = 0; (i < list.size() - 1) && flag; i++) { if(compare(list[i], list[i+1])) if (equal(list[i].begin(), list[i].end(), list[i+1].begin())) { flag = false; break; } } if (flag) cout << "YES\n"; else cout << "NO\n"; } return 0; }
'ProblemSolving' 카테고리의 다른 글
1389_케빈 베이컨의 6단계 법칙 (0) | 2021.02.16 |
---|---|
[BOJ] 1456_거의 소수 (0) | 2021.02.11 |
[BOJ] 1269_대칭 차집합 (0) | 2021.02.08 |
[BOJ] 1276_교각 놓기 (0) | 2021.02.07 |
[BOJ] 10546_배부른 마라토너 (0) | 2021.02.06 |
최근댓글