[알고리즘 문제 풀기] When Can We Meet?(22810)

C#
lhs's avatar
May 20, 2025
[알고리즘 문제 풀기] When Can We Meet?(22810)
notion image

1. 문제 풀이 아이디어

  • 배열에 등장한 횟수를 저장하며 제일 자주 등장한 값을 갱신하여 문제를 해결할 수 있다.

2. 나의 정답 코드

using System.Text; StringBuilder sb = new StringBuilder(); using (StreamReader sr = new StreamReader(Console.OpenStandardInput())) using (StreamWriter sw = new StreamWriter(Console.OpenStandardOutput())) { while (true) { int[] input = Array.ConvertAll(sr.ReadLine().Split(), int.Parse); int n = input[0]; int m = input[1]; int[] d = new int[100]; int result = 100; if (n == 0) break; while (n-- > 0) { input = Array.ConvertAll(sr.ReadLine().Split(), int.Parse); for (int i = 1; i < input.Length; i++) { d[input[i]]++; if (d[input[i]] > m || (d[input[i]] == m && input[i] < result)) { m = d[input[i]]; result = input[i]; } } } sb.AppendLine(result < 100 ? result.ToString() : "0"); } sw.Write(sb); }

3. 정리

  • 입력을 처리하며 등장 횟수가 m보다 크거나, 같으면서 번호가 더 작다면 해당 번호를 result에 저장한다.
  • 최종적으로 가장 많이 선택된 번호를 출력하되 없을 경우 0을 출력해 문제를 해결한다.
Share article

LHS's Study Space