๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 1268๋ฒˆ - ์ž„์‹œ ๋ฐ˜์žฅ ๊ตฌํ•˜๊ธฐ

by ์•ˆ์ฃผํ˜• 2022. 5. 7.

๋ฌธ์ œ

 

1268๋ฒˆ: ์ž„์‹œ ๋ฐ˜์žฅ ์ •ํ•˜๊ธฐ

์˜ค๋ฏผ์‹ ์„ ์ƒ๋‹˜์€ ์˜ฌํ•ด ํ˜•ํƒ์ดˆ๋“ฑํ•™๊ต 6ํ•™๋…„ 1๋ฐ˜ ๋‹ด์ž„์„ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค. ์˜ค๋ฏผ์‹ ์„ ์ƒ๋‹˜์€ ์šฐ์„  ์ž„์‹œ๋กœ ๋ฐ˜์žฅ์„ ์ •ํ•˜๊ณ  ํ•™์ƒ๋“ค์ด ์„œ๋กœ ์นœ์ˆ™ํ•ด์ง„ ํ›„์— ์ •์‹์œผ๋กœ ์„ ๊ฑฐ๋ฅผ ํ†ตํ•ด ๋ฐ˜์žฅ์„ ์„ ์ถœํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
#include <vector>
#include <memory.h>
using namespace std;


bool visited[1001];
int max_duplic = -1;
int ans;
int main(){
    int n; cin>>n;
    vector<vector<int>>v(n+1,vector<int>(n+1));
    
    for(int i=0; i<n; i++){ // ํ•™๋…„
        for(int k=0; k<5; k++){ //ํ•™์ƒ
            cin>>v[i][k];
        }
    }
    
    
    for(int a=0; a<n; a++){    //ํ•™์ƒ ๋ฝ‘๊ธฐ
        memset(visited,0,sizeof(visited));
        int cnt = 0;
        for(int b=0; b<5; b++){ //ํ•™๋…„ ํƒ์ƒ‰
            int peo_class = v[a][b];
            for(int c=0; c<n; c++){    //๋น„๊ตํ•  ํ•™์ƒ
                if(a!=c && peo_class == v[c][b]){
                    if(!visited[c]){
                        visited[c] = 1;
                        cnt++;
                    }
                }
            }
        }
        if(max_duplic<cnt){
            max_duplic = cnt;
            ans = a+1;
        }
    }
    cout<<ans;
}

 

ํ’€์ด

๋ธŒ๋ก ์ฆˆ 1๋กœ ๋ถ„๋ฅ˜๋˜์–ด ์žˆ๋Š”๋ฐ ์‚ฌ์‹ค ์ด๋Ÿฌํ•œ ๊ตฌํ˜„ ๋ฌธ์ œ๋Š” ๋‚œ์ด๋„๋ณด๋‹ค๋Š” ์ •๋‹ต๋ฅ ์„ ๋ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. 30%๋Œ€๋กœ ์กฐ๊ธˆ ๋‚ฎ์€ ํŽธ์ด์—ˆ๊ณ , ์˜ˆ์ƒ๋Œ€๋กœ ์กฐ๊ธˆ ๊นŒ๋‹ค๋กœ์› ์ง€๋งŒ ์™„์ „ ํƒ์ƒ‰์œผ๋กœ O(1000*1000*5)๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋‹ค ์ฐพ์•„๋ณด๋ฉด ์†์‰ฝ๊ฒŒ ํ’€๋ฆฝ๋‹ˆ๋‹ค.

ํ•œ ํ•œ์ƒ์„ ๊ธฐ์ค€์œผ๋กœ ํ•™๋…„์„ ๊ณจ๋ผ ๋ชจ๋“  ํ•™์ƒ๊ณผ ๋น„๊ต๋ฅผ ํ•˜์—ฌ ์ œ์ผ ๋งŽ์ด ๊ฒน์น˜๋Š” ํ•™์ƒ์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€