[백준 13129] Disposable Cup (C#, C++) - soo:bak
작성일 :
문제 링크
설명
종이컵 N개를 일직선으로 배치합니다. 각 컵은 위로 향하거나 뒤집을 수 있습니다.
i개를 뒤집었을 때 가능한 총 높이를 오름차순으로 출력하는 문제입니다.
접근법
먼저, i개를 뒤집으면 높이는 A×N + B×i가 됩니다. A는 컵 윗부분 높이, B는 컵 전체 높이입니다.
다음으로, i를 1부터 N까지 순회하며 각 높이를 계산합니다. i가 증가할수록 높이도 증가하므로 자연스럽게 오름차순이 됩니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Text;
namespace Solution {
class Program {
static void Main(string[] args) {
var parts = Console.ReadLine()!.Split();
var A = int.Parse(parts[0]);
var B = int.Parse(parts[1]);
var N = int.Parse(parts[2]);
var sb = new StringBuilder();
for (var i = 1; i <= N; i++) {
var h = A * N + B * i;
sb.Append(h);
if (i != N) sb.Append(' ');
}
Console.WriteLine(sb.ToString());
}
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll A, B, N; cin >> A >> B >> N;
for (ll i = 1; i <= N; i++) {
ll h = A * N + B * i;
cout << h;
if (i != N) cout << ' ';
}
cout << "\n";
return 0;
}