본문 바로가기
C++ 알고리즘

프로그래머스 폰켓몬(해쉬)

by hoshi03 2024. 9. 30.

https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=cpp

 

프로그래머스

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

programmers.co.kr

 

풀이

 

1~200000까지 번호가 잇는 n개의 폰켓몬이 들어올때 

n/2개를 고르고, 해당 폰켓몬의 종류를 구하는 문제

 

첨엔 맵에 넣고.. 맵을 순회하면서 구해야되나 하다가

그냥 set에 박아서 종류 구한 다음 생각해보면

 

n/2가 set보다 크거나 같은 경우 -> set에 있는거 다 하나씩 넣고 중복해서 더넣어야됨, 최대 종류는 set의 크기

n이 set 보다 작은경우 -> n/2 종류가 최대였다

 

#include <bits/stdc++.h>
using namespace std;

int solution(vector<int> nums)
{
    int answer = 0, count = nums.size()/2;
    set<int> sset;
    for(int x : nums)sset.insert(x);
    if(count >= sset.size()) answer = sset.size();
    else answer = count;
    
    return answer;
}

'C++ 알고리즘' 카테고리의 다른 글

SWEA D2 1926 간단한 369  (0) 2024.10.10
SWEA D2 1954 달팽이 숫자  (0) 2024.10.10
백준 2910 빈도정렬(map, vector)  (1) 2024.09.29
백준 1992 쿼드트리(재귀)  (0) 2024.09.29
백준 1629 곱셈(모듈러, 재귀)  (0) 2024.09.27