[ 프로그래머스 ] 신고 결과 받기 (C++) - 자료구조

2024. 4. 5. 14:21· 문제풀이/알고리즘 문제 풀이
목차
  1. 🔗 문제 링크
  2. 💡 문제 풀이 및 해석
  3. ⭐️ 정답 코드 및 설명
  4. 🤔 문제 후기
728x90

🔗 문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


💡 문제 풀이 및 해석

  1. 사용자마다 map<userId, set<userId>>를 사용해서 신고한 횟수가 아닌 신고 당한 ID를 모은다.
  2. 신고 당한 ID의 갯수 = 나를 신고한 사람이므로, 이 점을 이용해서 풀면 된다.

⭐️ 정답 코드 및 설명

#include <string>
#include <vector>
#include <set>
#include <map>
#include <iostream>

using namespace std;
map<string, set<string>> myReport; // 유저 : 해당 유저를 신고한 ID
map<string,int> user; // id : index

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

    int index=0;
    for(string id : id_list){
        user[id]=index++; // id : index
    }

    for(string str : report){
        string userId="",reportedId="";
        bool flag=false;
        for(char c : str){
            if(c==' '){
                flag=true;
                continue;
            }
            if(flag){
                reportedId+=c;
                continue;
            }
            userId+=c;
        }
        myReport[reportedId].insert(userId);
    }



    for(string id : id_list){
        if(myReport[id].size()>=k){
            for(string reportMe : myReport[id]){
                int i = user[reportMe];
                answer[i]++;
            }
        }
    }

    return answer;
}

🤔 문제 후기

map과 set을 이용하면 풀기에는 어렵지 않은 문제였지만, 그 중간에 Key : Value 에 대해서 실수만 하지 않으면 풀기에 어려운 문제는 아니였다. sstream을 사용하면, 쉽게 하는 방법이 있었는데, 정확하게 기억이 나지 않아서 flag를 사용해서 문자열을 잘라냈다.

728x90

'문제풀이 > 알고리즘 문제 풀이' 카테고리의 다른 글

[ 프로그래머스 ] 주차 요금 계산 (C++) - 구현  (0) 2024.04.05
[ 프로그래머스 ] K진수에서 소수 구하기 (C++) - 수학  (0) 2024.04.05
[ 백준 1759 ] 암호 만들기 (C++) - 조합, BackTracking  (0) 2024.04.04
[ 백준 16120 ] PPAP (C++) - 그리디  (0) 2024.04.02
[ 백준 12919 ] A와 B 2 (C++) - DFS  (0) 2024.04.01
  1. 🔗 문제 링크
  2. 💡 문제 풀이 및 해석
  3. ⭐️ 정답 코드 및 설명
  4. 🤔 문제 후기
'문제풀이/알고리즘 문제 풀이' 카테고리의 다른 글
  • [ 프로그래머스 ] 주차 요금 계산 (C++) - 구현
  • [ 프로그래머스 ] K진수에서 소수 구하기 (C++) - 수학
  • [ 백준 1759 ] 암호 만들기 (C++) - 조합, BackTracking
  • [ 백준 16120 ] PPAP (C++) - 그리디
RealTone
RealTone
풀스택 개발자되기 기원 1년차
RealTone
개발공부 블로그
RealTone
전체
오늘
어제
  • 분류 전체보기 (85)
    • 개발자 공부 (8)
      • 인프라 - AWS (2)
      • Frontend - React (2)
      • Frontend - Next (2)
    • 구름톤트레이닝 (2)
      • 강의 후기 (0)
    • 문제풀이 (74)
      • 알고리즘 문제 풀이 (62)
      • SQL 문제 풀이 (12)
    • 개인 (0)
      • 멕북초기화세팅 (0)

블로그 메뉴

  • 홈
  • 태그
  • GitHub
  • 방명록

태그

  • AWS
  • baekjoon
  • CI/CD
  • codedeploy
  • ec2
  • G2
  • G3
  • G4
  • G5
  • git/github

최근 글

hELLO · Designed By 정상우.v4.2.2
RealTone
[ 프로그래머스 ] 신고 결과 받기 (C++) - 자료구조
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.