본문 바로가기
Coding Test/C++

[프로그래머스] 신고 결과 받기 C++ Code

by giem 2022. 7. 16.
반응형

2022.07.16 - [Coding Test/Python] - [프로그래머스] 신고 결과 받기 Python code

 

 

[프로그래머스] 신고 결과 받기 Python code

문제 설명 예시 Input, Output 설명 code 구현은 아래와 같이 했다. answer의 배열은 id_list의 길이와 같기 때문에 0으로 모두 초기화해준다. 그 후 set으로 report의 중복을 제거한다. for문으로 report를..

gm-note.tistory.com

문제의 설명과 예시는 위 포스트와 같다.

 

새 창으로 여는 것을 추천한다.

 

문제의 설명만 참고로 보겠다.

 

 


코드는 위 포스트의 파이썬 코드와 최대한 비슷하게 짜봤다.

 

#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
using namespace std;


vector<int> solution(vector<string> id_list, vector<string> report, int k) {
    vector<int> answer(id_list.size());
    map<string, int> reportCnt;
    set<string> report_set(report.begin(), report.end());
    
    for(string s: report_set)
        reportCnt[s.substr(s.find(' '))]++;
    
    for (string s: report_set) {
        if (reportCnt[s.substr(s.find(' '))] >= k){
            int index = find(id_list.begin(), id_list.end(), s.substr(0, s.find(' '))) - id_list.begin();
            answer[index] +=1;
        }
    }
    
    return answer;
}

 

확실히 코드라인으로 볼 때 생산성은 파이썬이 높다는 것을 볼 수 있지만

결과의 성능은 약 3배 차이로 C++ 이 좋다는 것을 확인할 수 있었다.

반응형

댓글