본문 바로가기
프로그래머스

신고 결과 받기 C++

by paysmile 2022. 2. 19.

https://programmers.co.kr/learn/courses/30/lessons/92334

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<string> id_list, vector<string> report, int k) {
	vector<int> answer(id_list.size(),0);
	vector<vector<string>> v;
	vector<int> num(id_list.size(), 0);

	v.resize(id_list.size());

	for (int i = 0; i < report.size(); i++) {
		string fir, sec;
		int k=0;
		for (; k < report[i].size(); k++) {
			if (report[i][k] != ' ') fir += report[i][k];
			else break;
		}
		sec = report[i].substr(k + 1);

		int index = find(id_list.begin(), id_list.end(), fir) - id_list.begin();
		if (find(v[index].begin(), v[index].end(), sec) == v[index].end()) {
			v[index].push_back(sec);
			num[find(id_list.begin(), id_list.end(), sec) - id_list.begin()] ++;
		}
	}

	for (int i = 0; i < num.size(); i++) {
		if (num[i] >= k) {
			for (int kk = 0; kk < v.size(); kk++) {
				if (find(v[kk].begin(), v[kk].end(), id_list[i]) != v[kk].end()) {
					int index = find(v[kk].begin(), v[kk].end(), id_list[i]) - v[kk].begin();
					answer[kk] ++;
				}
			}
		}
	}
	return answer;
}

'프로그래머스' 카테고리의 다른 글

2개 이하로 다른 비트 C++  (0) 2022.03.02
외벽 점검 C++  (0) 2022.02.21
k진수에서 소수 개수 구하기 C++  (0) 2022.02.19
양궁대회 C++  (0) 2022.02.19
주차 요금 계산 C++  (0) 2022.02.18