PS

BOJ 9575 : 행운의 수

lickelon 2024. 2. 8. 23:42
  • 문제 링크 : boj.kr/9575
  • 난이도 : S4
  • 태그 : 브루트포스
 

9575번: 행운의 수

각각의 테스트 케이스마다 입력으로 주어진 수열을 이용해 만들 수 있는 서로 다른 행운의 수의 개수를 한 줄에 하나씩 출력한다.

www.acmicpc.net


코드

#include <bits/stdc++.h>

#define all(x) (x).begin(), (x).end()

#define INF 0x7FFFFFFF

using namespace std;

using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    int T;
    cin >> T;
    while(T--) {
        vector<int> a, b, c;
        int n;
        cin >> n;
        a.resize(n);
        for(auto &u : a) cin >> u;
        cin >> n;
        b.resize(n);
        for(auto &u : b) cin >> u;
        cin >> n;
        c.resize(n);
        for(auto &u : c) cin >> u;

        set<int> _s;
        for(auto u : a) {
            for(auto v : b) {
                for(auto w : c) {
                    int sum = u + v + w;
                    string s = to_string(sum);
                    bool check = true;
                    for(auto _c : s) {
                        if(!(_c == '5' || _c == '8')){
                            check = false;
                            break;
                        } 
                    }
                    if(check) _s.insert(sum);
                }
            }
        }
        cout << _s.size() << "\n";
    }

    return 0;
}

풀이

각 배열의 길이가 50이고, 배열에서 하나씩만 선택하기 때문에 브루트포스로 풀면 O(NMK)의 시간복잡도로 해결할 수있다.

'PS' 카테고리의 다른 글

BOJ 20920 : 영단어 암기는 괴로워  (1) 2024.02.10
BOJ 2986 : 파스칼  (0) 2024.02.09
BOJ 25344 : 행성 정렬  (2) 2024.02.07
BOJ 26259 : 백룸  (0) 2024.02.06
BOJ 2667 : 단지번호붙이기  (0) 2024.02.05