[백준 27262] Лифт (C#, C++) - soo:bak
작성일 :
문제 링크
설명
간단한 사칙연산 문제입니다.
문제의 목표는 거주하는 층 n
, 현재 위치한 엘레베이터의 층 k
, 계단을 이동하는 데 걸리는 시간 k
,
엘리베이터가 각 층을 이동하는 데에 걸리는 시간 b
가 주어졌을 때, 엘레베이터를 이용하는 경우의 시간과
계단을 이용하는 경우의 시간을 각각 계산하는 것입니다.
주어진 조건에 따르면, 각각의 시간은 다음과 같이 계산됩니다.
엘레베이터를 이용하는 경우의 시간
= 엘레베이터가 1층에 도달하는 시간 + 엘레베이터가 n층으로 이동하는 시간
= (abs(1
- k
) * b
) + (n
- 1
) * b
계단을 이용하는 경우의 시간
= (n
- 1
) * b
결과값을 계산한 후, 문제에서 주어진 출력 조건에 따라 적절히 출력합니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace Solution {
class Program {
static void Main(string[] args) {
var input = Console.ReadLine()?.Split();
var n = int.Parse(input![0]);
var k = int.Parse(input![1]);
var a = int.Parse(input![2]);
var b = int.Parse(input![3]);
var elevTime = Math.Abs(1 - k) * b + (n - 1) * b;
var stairTime = (n - 1) * a;
Console.WriteLine($"{elevTime} {stairTime}");
}
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, k, a, b; cin >> n >> k >> a >> b;
int elevTime = abs(1 - k) * b + (n - 1) * b;
int stairTime = (n - 1) * a;
cout << elevTime << " " << stairTime << "\n";
return 0;
}