[백준 알고리즘]/[C++]
13915번 현수의 열기구 교실 | Baekjoon BOJ 백준 13915 C++ 코드, 해설, 풀이
말하는펭귄
2021. 1. 20. 13:04
728x90
반응형
이번 포스팅은 백준 13915번 현수의 열기구 교실입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
13915번: 현수의 열기구 교실
현수는 열기구 여름특강의 강사다. 현수는 매우 성실해서 모든 수강생들의 열기구 비행을 기록하고있다. 매 비행 이후, 현수는 그 비행에 참석한 수강생들의 기록을 리스트에 추가한다. 리스트
www.acmicpc.net
기본 알고리즘
vector, set 연습
참고
line 11-12
test case의 개수가 주어지지 않을 때 입력받기
line 27
벡터 내부의 중복 원소 제거
line 13-35
각 벡터(v[0]~v[4])를 set에 insert하여 set의 크기 출력
(set - 중복 원소 없음)
2021/01/21 - [[C , C++]] - C++ vector 중복 원소 삭제
C++ vector 중복 원소 삭제
1. unique 함수 unique 함수는 vector에서 중복되지 않는 원소들을 앞에서부터 채워나가는 함수 (algorithm 헤더에 정의) 자신이 바꾼 vector의 end()를 반환 (중복 원소들(쓰레기 값들)의 첫 번째 위치 리턴)
scarlettb.tistory.com
diagram
after line 16
after line 24
after line 26
after line 27
전체 코드
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
29
30
31
32
33
34
35
36
37
38
39
|
//백준13915 현수의열기구교실
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int main() {
int N;
while (cin >> N) {
string arr[1002];
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
vector<vector<int>> v;
for (int i = 0; i < N; i++) {
vector<int> temp = {};
v.push_back(temp);
for (int l = 0; l < arr[i].size(); l++) {
v[i].push_back(arr[i].at(l) - '0');
}
sort(v[i].begin(), v[i].end());
v[i].erase(unique(v[i].begin(), v[i].end()), v[i].end());
}
set<vector<int>> s;
for (int i = 0; i < N; i++) {
s.insert(v[i]);
}
cout << s.size() << endl;
}
return 0;
}
|
cs |
728x90
반응형