작성일 :

문제 링크

16546번 - Missing Runners

설명

첫 번째 입력으로 주어지는 n 명의 참가자들 중, 아직 결승선을 통과하지 못한 참가자를 탐색하는 문제입니다.

간단하게 진위형 배열을 만들고, 반복문을 통해 탐색하는 방식으로 구현하였습니다.


Code


[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
namespace Solution {
  class Program {
    static void Main(string[] args) {

      int.TryParse(Console.ReadLine(), out int n);

      bool[] isFinished = Enumerable.Repeat<bool>(false, n + 1).ToArray<bool>();
      isFinished[0] = true;

      string[]? input = Console.ReadLine()?.Split();
      for (int i = 0; i < n - 1; i++) {
        int.TryParse(input?[i], out int num);
        isFinished[num] = true;
      }

      for (int i = 1; i <= n; i++) {
        if (!isFinished[i]) {
          Console.WriteLine("{0}", i);
          break ;
        }
      }

    }
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n; cin >> n;

  vector<bool> isFinished(n + 1, false);
  isFinished[0] = true;

  for (int i = 0; i < n - 1; i++) {
    int num; cin >> num;
    isFinished[num] = true;
  }

  for (int i = 1; i <= n; i++) {
    if (!isFinished[i]) {
      cout << i << "\n";
      break ;
    }
  }

  return 0;
}