[BOJ][C#] 20529 가장 가까운 세 사람의 심리적 거리

LimJaeJun·2023년 12월 30일
0

PS/BOJ

목록 보기
80/108

📕 문제

📌 링크

📗 접근 방식

비둘기 집 원리:

  • MBTI의 종류는 16가지로 사람이 33명 이상이라면 무조건 하나의 MBTI에는 3명이 존재한다.

탐색 및 카운팅:

  • 가능한 세 가지 성격에 대한 모든 조합을 확인하면서, 각 조합에 대해 세 명의 사람이 가지는 성격과의 차이를 계산한다.
  • 최소 차이를 가지는 조합을 찾으면서, 이 값을 갱신한다.

📘 코드

using System.Text;

namespace BOJ
{
    class No_20529
    {
        static void Main()
        {
            StringBuilder sb = new StringBuilder();
            List<string> list = new List<string>();
            int testCase = int.Parse(Console.ReadLine());

            while (testCase-- > 0)
            {
                int n = int.Parse(Console.ReadLine());
                var inputs = Console.ReadLine().Split();
                
                if (n > 32)
                {
                    sb.AppendLine("0");
                }
                else
                {
                    list.Clear();
                
                    for (int i = 0; i < n; i++)
                    {
                        list.Add(inputs[i]);
                    }
                    
                    int answer = int.MaxValue;
                    for (int i = 0; i < list.Count - 2; i++)
                    {
                        for (int j = i + 1; j < list.Count - 1; j++)
                        {
                            for (int k = j + 1; k < list.Count; k++)
                            {
                                int count = 0;
                                
                                for (int l = 0; l < 4; l++)
                                {
                                    if (list[i][l] != list[j][l]) count++;
                                    if (list[j][l] != list[k][l]) count++;
                                    if (list[k][l] != list[i][l]) count++;
                                }
                                
                                answer = Math.Min(answer, count);
                            }
                        }
                    }
                
                    sb.AppendLine($"{answer}");
                }
            }

            Console.Write(sb);
        }
    }   
}

📙 오답노트

32보다 클때 입력값을 입력받지 않아 format오류가 떴다...
count 초기화하는 부분과 answer 업데이트해주는 부분의 위치도 잘못 기입하여 틀리고 있었다.

📒 알고리즘 분류

  • 브루트포스 알고리즘
  • 비둘기집 원리
profile
Dreams Come True

0개의 댓글

관련 채용 정보