작성일 :

문제 링크

23275번 - Knot Knowledge

설명

배워야 할 n개의 매듭 번호와 그중 n-1개를 배운 목록이 주어집니다.

아직 배우지 않은 매듭 번호 하나를 출력합니다.


접근법

모든 번호가 서로 다르므로, 배워야 할 번호들의 합에서 이미 배운 번호들의 합을 빼면 남은 번호가 됩니다.



Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;

class Program {
  static void Main() {
    var n = int.Parse(Console.ReadLine()!);
    var need = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
    var learned = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);

    var sumNeed = 0;
    var sumLearned = 0;
    foreach (var v in need)
      sumNeed += v;
    foreach (var v in learned)
      sumLearned += v;

    Console.WriteLine(sumNeed - sumLearned);
  }
}

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
#include <bits/stdc++.h>
using namespace std;

typedef vector<int> vi;

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

  int n; cin >> n;
  vi need(n), learned(n - 1);
  for (int i = 0; i < n; i++)
    cin >> need[i];
  for (int i = 0; i < n - 1; i++)
    cin >> learned[i];

  int sumNeed = 0, sumLearned = 0;
  for (int v : need)
    sumNeed += v;
  for (int v : learned)
    sumLearned += v;

  cout << sumNeed - sumLearned << "\n";

  return 0;
}