2022. 9. 19. 13:13 자기개발/코딩테스트
C++ (코딩테스트) - 신고 결과 받기(프로그래머스)
문제
https://school.programmers.co.kr/learn/courses/30/lessons/92334
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내가 푼 답
#include <string>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
vector<int> solution(vector<string> id_list, vector<string> report, int k) {
int id_size = id_list.size();
vector<int> answer(id_size, 0);
vector<bool> vote_check(id_size,false);
vector<vector<bool>> vote(id_size, vote_check);
vector<int> voted_cnt(id_size, 0);
map<string, int> list;
for (int i = 0; i < id_size; i++)
list.insert(pair<string, int>{ id_list[i], i });
sort(report.begin(), report.end());
report.erase(unique(report.begin(), report.end()), report.end());
for (int i = 0; i < report.size(); i++)
{
string a, b;
bool chk = true;
for (int j = 0; j < report[i].size(); j++)
{
if (report[i][j] == ' ') { chk = false; continue; }
if (chk)
a.push_back(report[i][j]);
else
b.push_back(report[i][j]);
}
vote[list[a]][list[b]] = true;
voted_cnt[list[b]]++;
}
for (int i = 0; i < id_size; i++)
{
if (voted_cnt[i] < k) continue;
for (int j = 0; j < id_size; j++)
if (vote[j][i]) answer[j]++;
}
return answer;
}
다른사람 풀이
#include <bits/stdc++.h>
#define fastio cin.tie(0)->sync_with_stdio(0)
using namespace std;
vector<int> solution(vector<string> id_list, vector<string> report, int k) {
// 1.
const int n = id_list.size();
map<string, int> Conv;
for (int i = 0; i < n; i++) Conv[id_list[i]] = i;
// 2.
vector<pair<int, int>> v;
sort(report.begin(), report.end());
report.erase(unique(report.begin(), report.end()), report.end());
for (const auto& s : report) {
stringstream in(s);
string a, b; in >> a >> b;
v.push_back({ Conv[a], Conv[b] });
}
// 3.
vector<int> cnt(n), ret(n);
for (const auto& [a, b] : v) cnt[b]++;
for (const auto& [a, b] : v) if (cnt[b] >= k) ret[a]++;
return ret;
}'자기개발 > 코딩테스트' 카테고리의 다른 글
| C++ (코딩테스트) - 행렬의 곱셈(프로그래머스) (0) | 2022.09.29 |
|---|---|
| C++ (코딩테스트) - 이진 변환 반복하기(프로그래머스) (0) | 2022.09.29 |
| C++ (코딩테스트) - [1차] 다트 게임(프로그래머스) (0) | 2022.09.06 |
| C++ (코딩테스트) - 소수 찾기(프로그래머스) (0) | 2022.09.05 |
| C++(코딩테스트) - 예상 대진표(프로그래머스) (0) | 2022.08.17 |