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

2022. 7. 9. 11:09·정리 전 게시글/공부 관련

문제 : 신고 결과 받기


풀이 방법

https://youtu.be/SHX3FgLx014

 

처음에는 내 방식 대로 풀었을 때 테스트 케이스는 통과 했었다..

근데 제출하니까 실패 거의 반 이상을 차지해서 좀 더 고민하다가 3시간 이상 넘어가니까 못풀겠더라

그래서 유튜브에 찾아보니까 이렇게 풀이랑 코드랑 같이 있는 것을 보고 배웠다.

 

이분은 map이랑 set을 사용하는데 중복을 없애기 위해 set을 사용한다고 했다.

report.erase(unique(report.begin(), report.end()), report.end());

나는 이거면 중복을 제거 하기 때문에 이거만 쓰고 set을 쓰지 않았는데 오류가 나더라

아마도 set을 써야 하는게 맞았던 것 같다.

 

해쉬랑 set좀 더 공부해야할 것 같다


소스 코드

#include <string>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
using namespace std;

vector<int> solution(vector<string> id_list, vector<string> report, int k) {
    vector<int> answer(id_list.size(), 0);
    
    unordered_map<string, unordered_set<string>> report_hash;
    unordered_map<string, unordered_set<string>> result_hash;
    
    for(string & s : report) {
        int pos = s.find(' ');
        string user = s.substr(0, pos);
        string rt = s.substr(pos + 1);
        report_hash[user].insert(rt);
        result_hash[rt].insert(user);
    }
    
    for(int i=0; i<id_list.size(); i++) {
        auto it = report_hash.find(id_list[i]);
        if(it == report_hash.end()) continue;
        for(string rt : it->second) {
            if(result_hash[rt].size() >= k) {
                answer[i]++;
            }
        }
    }
    
    return answer;
}

 

저작자표시 (새창열림)

'정리 전 게시글 > 공부 관련' 카테고리의 다른 글

[프로그래머스 Level 2, C++] 최솟값 만들기  (0) 2022.07.14
[프로그래머스 Level 2, C++] N-Queen  (0) 2022.07.13
[프로그래머스 Level 1, C++] 키패드 누르기  (0) 2022.07.08
[프로그래머스 Level 1, C++] 크레인 인형뽑기 게임  (0) 2022.07.08
[프로그래머스 Level 1, C++] 실패율  (0) 2022.07.07
'정리 전 게시글/공부 관련' 카테고리의 다른 글
  • [프로그래머스 Level 2, C++] 최솟값 만들기
  • [프로그래머스 Level 2, C++] N-Queen
  • [프로그래머스 Level 1, C++] 키패드 누르기
  • [프로그래머스 Level 1, C++] 크레인 인형뽑기 게임
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (277)
      • f1tenth (2)
      • 개발 관련 아무거나 (1)
      • 정리 전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    C언어강좌
    이것이자바다확인문제
    이것이자바다연습문제
    캡스톤디자인
    티스토리HTML
    공개SW개발자대회
    C++강좌
    티스토리반응형2스킨편집
    마크
    마인크래프트스크립트
    프로그래머스PCCE
    마인크래프트강화스크립트
    마크스크립트
    백준
    C언어
    자바
    반복하지않는수
    파이어베이스
    스크롤바CSS
    콜라츠추측
    컨텍스트스위칭
    마인크래프트
    c언어초보
    파이썬
    티스토리스킨편집
    이것이자바다
    일본규슈공업대학교
    빅데이터공모전
    안드로이드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
[프로그래머스 Level 1, C++] 신고 결과 받기
상단으로

티스토리툴바