작성일 :

문제 링크

25278번 - Terraforming

설명

초기 상태에서 변화량을 적용한 뒤, 바다 9%, 산소 14%, 평균 온도 8도 이상인지 확인해 결과를 출력하는 문제입니다.


접근법

바다 비율, 산소 농도, 평균 온도의 초기값을 각각 0, 0, -30으로 설정합니다.

이후 각 변화량을 읽어 해당 값에 더한 뒤, 최종적으로 바다 9% 이상, 산소 14% 이상, 온도 8도 이상인지 검사하여 결과를 출력합니다.


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
using System;

class Program {
  static void Main() {
    var n = int.Parse(Console.ReadLine()!);
    var ocean = 0;
    var oxygen = 0;
    var temp = -30;

    for (var i = 0; i < n; i++) {
      var parts = Console.ReadLine()!.Split();
      var kind = parts[0];
      var delta = int.Parse(parts[1]);
      if (kind == "ocean") ocean += delta;
      else if (kind == "oxygen") oxygen += delta;
      else temp += delta;
    }

    if (ocean >= 9 && oxygen >= 14 && temp >= 8)
      Console.WriteLine("liveable");
    else Console.WriteLine("not liveable");
  }
}

C++

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

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

  int n; cin >> n;
  int ocean = 0, oxygen = 0, temp = -30;
  for (int i = 0; i < n; i++) {
    string kind; int delta; cin >> kind >> delta;
    if (kind == "ocean") ocean += delta;
    else if (kind == "oxygen") oxygen += delta;
    else temp += delta;
  }

  if (ocean >= 9 && oxygen >= 14 && temp >= 8)
    cout << "liveable\n";
  else cout << "not liveable\n";

  return 0;
}