๐Ÿ“ฆ Chango/๐Ÿฃ EDOC

[BOJ][C++] ๋ฐฑ์ค€ 2160๋ฒˆ: ๊ทธ๋ฆผ ๋น„๊ต (100%)

์„ ๋‹ฌ 2022. 5. 11. 06:16
๋ฐ˜์‘ํ˜•

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

 

2160๋ฒˆ: ๊ทธ๋ฆผ ๋น„๊ต

N(2 ≤ N ≤ 50)๊ฐœ์˜ ๊ทธ๋ฆผ์ด ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ทธ๋ฆผ์€ 5×7์˜ ํฌ๊ธฐ์ด๊ณ , ๋‘ ๊ฐ€์ง€ ์ƒ‰์œผ๋กœ ๋˜์–ด ์žˆ๋‹ค. ์ด๋•Œ ๋‘ ๊ฐ€์ง€์˜ ์ƒ‰์„ ๊ฐ๊ฐ ‘X’์™€ ‘.’์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๋กœ ํ•˜์ž. ์ด๋Ÿฌํ•œ ๊ทธ๋ฆผ๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋น„

www.acmicpc.net

 

๋ฌธ์ œ

N(2 ≤ N ≤ 50)๊ฐœ์˜ ๊ทธ๋ฆผ์ด ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ทธ๋ฆผ์€ 5×7์˜ ํฌ๊ธฐ์ด๊ณ , ๋‘ ๊ฐ€์ง€ ์ƒ‰์œผ๋กœ ๋˜์–ด ์žˆ๋‹ค. ์ด๋•Œ ๋‘ ๊ฐ€์ง€์˜ ์ƒ‰์„ ๊ฐ๊ฐ ‘X’์™€ ‘.’์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๋กœ ํ•˜์ž. ์ด๋Ÿฌํ•œ ๊ทธ๋ฆผ๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋น„์Šทํ•œ ๋‘ ๊ฐœ์˜ ๊ทธ๋ฆผ์„ ์ฐพ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‘ ๊ฐœ์˜ ๊ทธ๋ฆผ์—์„œ ๋‹ค๋ฅธ ์นธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์„ ๋•Œ, ๋‘ ๊ฐœ์˜ ๊ทธ๋ฆผ์ด ๊ฐ€์žฅ ๋น„์Šทํ•˜๋‹ค๊ณ  ํ•˜์ž.

์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์™€ ๊ฐ™์€ ๋‘ ๊ฐœ์˜ ๊ทธ๋ฆผ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ƒ‰์น ํ•œ ๋ถ€๋ถ„์ด ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋œ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์€ 5๊ฐœ์˜ ์นธ์ด ์„œ๋กœ ๋‹ค๋ฅด๋‹ค. ์ด์™€ ๊ฐ™์ด ์„œ๋กœ ๋‹ค๋ฅธ ์นธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฒฝ์šฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ 5×N๊ฐœ์˜ ์ค„์— 7๊ฐœ์˜ ๋ฌธ์ž๋กœ ๊ฐ๊ฐ์˜ ๊ทธ๋ฆผ์ด ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๊ฐ€์žฅ ๋น„์Šทํ•œ ๋‘ ๊ทธ๋ฆผ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๊ทธ๋ฆผ์˜ ๋ฒˆํ˜ธ๋Š” ์ž…๋ ฅ๋˜๋Š” ์ˆœ์„œ๋Œ€๋กœ 1, 2, …, N์ด๋‹ค. ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ์—๋Š” ์ž‘์€ ๊ฒƒ์„ ๋จผ์ € ์ถœ๋ ฅํ•œ๋‹ค. ์ž…๋ ฅ์€ ํ•ญ์ƒ ๋‹ต์ด ํ•œ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ๋งŒ ์ฃผ์–ด์ง„๋‹ค.

 

์‹œํ–‰์ฐฉ์˜ค (100%)

100%๊นŒ์ง€ ๊ฐ€๋†“๊ณ  ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค ๋œจ๋Š”๊ฑด ๋Œ€์ฒด ๋ฌด์Šจ ์‹ฌ๋ณด์•ผ :(

// Authored by : seondal
// Co-authored by : -

//#include <bits/stdc++.h>
#include <iostream>

using namespace std;

int n;
char pic[52][5][7];
int comp[52][52];

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    // ์ž…๋ ฅ : k๋ฒˆ์จฐ ๊ทธ๋ฆผ์˜ iํ–‰ j์—ด
    cin >> n;
    for(int k=0; k<n; k++)
        for(int i=0; i<5; i++)
            for(int j=0; j<7; j++)
                cin >> pic[k][i][j];
    
    // comp ๋ฐฐ์—ด์— ๋‹ค๋ฅธ ์นธ์˜ ๊ฐฏ์ˆ˜ ์„ธ์–ด ๋„ฃ๊ธฐ
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            comp[i][j] = 35;
            if(i >= j) continue; //์ค‘๋ณต ๋ฐฉ์ง€
            
            // i๋ฒˆ ๊ทธ๋ฆผ๊ณผ j๋ฒˆ ๊ทธ๋ฆผ ๋น„๊ต ํ›„ ๋‹ค๋ฅธ ์นธ์˜ ๊ฐฏ์ˆ˜ ์นด์šดํŠธ
            int tmp = 0;
            for(int m=0; m<5; m++)
                for(int k=0; k<7; k++)
                    if(pic[i][m][k] != pic[j][m][k]) tmp++;

            comp[i][j] = tmp;
        }
    }
    
    // comp ๋ฐฐ์—ด์—์„œ ์ตœ์†Ÿ๊ฐ’์˜ ์ขŒํ‘œ ๋ฝ‘์•„๋‚ด๊ธฐ
    int diff = 35;
    int ans1, ans2;
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            if(diff > comp[i][j]) {
                diff = comp[i][j];
                ans1 = i+1;
                ans2 = j+1;
            }
        }
    }
    
    cout << ans1 << " " << ans2;
    
    return 0;
}

/*
 */

 

๋ฐ˜์‘ํ˜•