작성일 :

문제 링크

24408번 - Mult!

설명

각 라운드는 첫 번째로 주어진 수가 기준이 됩니다. 이후 주어지는 수를 순서대로 보다가 기준 수의 배수가 처음 등장하면 그 값을 출력합니다.

출력 직후 다음 수가 새 라운드의 기준이 되어 같은 과정을 반복합니다. 입력은 여러 라운드가 이어진 하나의 수열입니다.


접근법

먼저, 첫 수를 현재 라운드의 기준 값으로 저장합니다.

다음으로, 숫자를 순서대로 읽으며 기준의 배수인지 확인합니다. 배수가 처음 발견되면 즉시 출력하고, 다음 수를 새 기준으로 교체합니다.

이후, 입력이 끝날 때까지 이 과정을 반복합니다.


Code

C#

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

namespace Solution {
  class Program {
    static void Main(string[] args) {
      var n = int.Parse(Console.ReadLine()!);
      var tar = int.Parse(Console.ReadLine()!);

      for (var i = 1; i < n; i++) {
        var num = int.Parse(Console.ReadLine()!);
        if (num % tar == 0) {
          Console.WriteLine(num);
          i++;
          if (i < n) tar = int.Parse(Console.ReadLine()!);
        }
      }
    }
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;

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

  int n, tar; cin >> n >> tar;

  for (int i = 1; i < n; i++) {
    int num; cin >> num;
    if (num % tar == 0) {
      cout << num << "\n";
      i++;
      if (i < n) cin >> tar;
    }
  }

  return 0;
}