π™°πš•πšπš˜πš›πš’πšπš‘πš–/π™±πšŠπšŽπš”πš“πš˜πš˜πš—

[λ°±μ€€/Java] κ°€μž₯ κ°€κΉŒμš΄ μ„Έ μ‚¬λžŒμ˜ 심리적 거리 20529

ν•΄λ²„λ‹ˆ 2023. 12. 23. 18:06
λ°˜μ‘ν˜•

 

 

 

문제

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

 

20529번: κ°€μž₯ κ°€κΉŒμš΄ μ„Έ μ‚¬λžŒμ˜ 심리적 거리

각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ— λŒ€ν•œ 닡을 μ •μˆ˜ ν˜•νƒœλ‘œ ν•œ 쀄에 ν•˜λ‚˜μ”© 좜λ ₯ν•œλ‹€.

www.acmicpc.net

 

 

 

mbti κ³Όλͺ°μž…λŸ¬λŠ” 이런 문제λ₯Ό μ’‹μ•„ν•©λ‹ˆλ‹·,, 

 

 

 

 

 

 

 

풀이

 

λΉ„λ‘˜κΈ°μ§‘ μ›λ¦¬λ‘œ ν’€μ—ˆλ‹€. 

https://velog.io/@ehdbs28/%EB%B9%84%EB%91%98%EA%B8%B0%EC%A7%91-%EC%9B%90%EB%A6%AC-Pigeonhole-Principle

 

λΉ„λ‘˜κΈ°μ§‘ 원리 (Pigeonhole Principle)

λΉ„λ‘˜κΈ°μ§‘ 원리λ₯Ό κ³΅λΆ€ν•˜μ—¬ μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€.

velog.io

 

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int N = Integer.parseInt(br.readLine());
            StringTokenizer st = new StringTokenizer(br.readLine());

            if (N >= 33) {
                bw.write(String.valueOf(0) + "\n");
                continue;
            }
            String[] MBTI = new String[N];

            for (int j = 0; j < MBTI.length; j++) {
                MBTI[j] = st.nextToken();
            }

            int answer = Integer.MAX_VALUE;
            for (int j = 0; j < MBTI.length; j++) {
                for (int k = j + 1; k < MBTI.length; k++) {
                    for (int l = k + 1; l < MBTI.length; l++) {
                        int count = 0;
                        for (int m = 0; m < 4; m++) {
                            count += MBTI[j].charAt(m) != MBTI[k].charAt(m) ? 1 : 0;
                            count += MBTI[k].charAt(m) != MBTI[l].charAt(m) ? 1 : 0;
                            count += MBTI[l].charAt(m) != MBTI[j].charAt(m) ? 1 : 0;
                        }
                        answer = Math.min(answer, count);
                    }
                }
            }
            bw.write(String.valueOf(answer) + "\n");
        }


        bw.flush();
        bw.close();
    }
}

 

 

 

 

 

 

 

μ •λ‹΅ 

 

 

 

 

 

 

λ°˜μ‘ν˜•