[백준] 3052번: 나머지 c++
Coding/Basic

[백준] 3052번: 나머지 c++

백준 3052 나머지 문제 링크

3052

이 문제를 위해 파악해야 할 핵심요소 및 마인드맵

  • 배열을 어떻게 활용할 것인가?
  • 배열 안에 서로 다른 값과 같은 값을 구분할 수 있는 방법을 알고 있는가?

주의해야할 점/여러 풀이 방법 및 아이디어

  • 배열에 들어갈 수 있는 숫자 자체가 한정적인 경우 정해진 크기의 배열을 생성, 그 안에 숫자에 맞게 넣는 알고리즘
    • 배열을 빈 상태 시작, 거기에 하나씩 넣고 중복을 확인하는 것 <<  너무 시간이 많이 든다.
    • 42 크기의 배열을 생성, 안에 내용 확인하기 
      • 여기서도 있다/없다의 여부만 파악하는 과정으로 0과 1로 구분할 생각
  • 만약 배열의 크기가 일정하지 않다면(상상 이상이라면) 하나하나 삽입하는 방법을 추천
#include <iostream>
using namespace std;
 
int main() {
    int remain[42] = { 0 };
 
    int t;
    for (int i = 0; i < 10; ++i) {
        cin >> t;
        remain[t % 42] = 1;
    }
 
    int count = 0;
    for (int i = 0; i < 42; ++i) {
    	count += remain[i];
    }
    cout << count << '\n';
}