[백준 7567] 그릇 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
연속된 접시들이 쌓일 때, 전체 높이를 계산하는 구현 문제입니다.
- 각 접시는 문자
'('
또는')'
로 표현됩니다. - 같은 방향의 접시가 연속될 경우 높이는
5
만 증가하며, - 다른 방향의 접시가 쌓이면 높이는
10
만큼 증가합니다. - 처음 접시는 높이
10
부터 시작합니다.
접근법
- 첫 문자를 기준으로 높이를
10
으로 초기화합니다. - 이후 두 번째 문자부터 끝까지 문자열을 순회하며,
- 이전 문자와 같으면
+5
, 다르면+10
을 누적합니다.
- 이전 문자와 같으면
- 최종 높이를 출력합니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
class Program {
static void Main() {
string str = Console.ReadLine();
int sum = 10;
for (int i = 1; i < str.Length; i++) {
if (str[i] == str[i - 1])
sum += 5;
else
sum += 10;
}
Console.WriteLine(sum);
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
string str; cin >> str;
int sum = 10;
for (size_t i = 1; i < str.size(); i++) {
if (str[i] == str[i - 1]) sum += 5;
else sum += 10;
}
cout << sum << "\n";
return 0;
}