1주차(자료구조) - [C++]백준1302 베스트셀러

1주차(자료구조) - [C++]백준1302 베스트셀러

백준1302 베스트셀러 링크

문제

오류

예제 입력

오류


코드

#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int N;
	cin >> N;

	map<string, int> map;
	vector<string> arr;
	string temp;
	int max = 0;
	for (int i = 0; i < N; i++) {
		cin >> temp;
		if (map.find(temp) == map.end()) {
			map.insert({ temp , 1 }); //make_pair(temp, 1)
			arr.push_back(temp);
		}
		else {
			map.find(temp)->second += 1;
			if (max < map.find(temp)->second)
				max = map.find(temp)->second;
		}
	}
	sort(arr.begin(), arr.end());

	for (int i = 0; i < arr.size(); i++) {
		if (max == map.find(arr[i])->second) {
			cout << arr[i] << "\n";
			break;
		}
	}
}

설명

C++ STL(표준 템플릿 라이브러리)에서 map을 사용하여 셀러명과 갯수를 저장하는데 이전에 없다면 insert해줍니다. 만약 있다면 갯수를 증가시키고 베스트(max)값인지 확인합니다. 그리고 사전순으로 먼저 나오는 베스트셀러를 출력합니다.

-pair<자료형, 자료형> 변수명; : 하나의 변수에 2가지 값을 저장함

<algorithm>
-sort(시작, 끝, 비교함수) : 배열의 크기만큼 정렬

<vector>
-vector<자료형> 변수명; : 배열 자료구조 사용

<map>
-map<자료형, 자료형> 변수명; :  Key-val형태 자료구조 사용(사전순으로 자동저장)

결과

오류


© 2022. All rights reserved. 신동민의 블로그