본문 바로가기
Problem Solving

[C++] [백준 3052] 나머지 (pps 4-3)

by tls1107 2021. 7. 17.
728x90
반응형


문제 풀기 전 생각 : 

/*
어려운 문제는 아니다.
세트 컨테이너를 사용하면 쉽게 풀수 있다
세트 컨테이너는 중복을 허용하지 않기 때문에 
입력받은 숫자를 42로 나눈 나머지값을 세트에 insert하면
중복은 받지 않는다.
그런 다음 세트의 사이즈를 출력하면 우리가 원하는 답을 구할 수 있다.
*/

#include <iostream>
#include <set>
using namespace std;
 
int main() { 
  int n;
  set<int> s;
  for(int i=0 ; i<10 ; i++){
    cin >> n;
    s.insert(n%42);
  }
  cout << s.size();
  return 0; 
}

https://www.acmicpc.net/problem/3052


풀 때 어려웠던 점 또는 느낀점 :

 

중복을 허용하지 않는 컨테이너가 존재하는 것을 알았지만

사용해본 적은 없어 정확히 어떤 컨테이너인지 몰랐는데

이번 문제를 풀기 위해 검색해봤다.

덕분에 세트 컨테이너에 대해 알 수 있었다.


개선방안 :

#import<cstdio>
int a[42],n,s;
main(){
while(scanf("%d",&n)>0)
	a[n%42]=1;
    for(auto n:a)
    	s+=n;
    printf("%d",s);
}

나는 컨테이너를 사용했지만 위의 코드에선 42칸짜리 배열을 사용했다

저 방법도 나쁘지 않은것 같다.

728x90
반응형

댓글