반응형
풀이
open변수는 '('의 갯수, piece변수는 잘린 쇠막대기의 총 개수
01 '('인 경우
open변수를 증가시켜 새로운 쇠막대기의 시작을 표시한다.
if (c == '(')
open++;
02 ')'인 경우
쇠막대기가 끝난 것을 표시하기 위해 open을 감소시키고 끝났으므로 조각이 됐으니까 piece를 증가시킨다.
else if (c == ')')
{
open--;
piece++;
}
03 레이저인 경우
레이저로 인해 현재 쇠막대기들이 잘리므로 piece에 갯수를 증가시킨다.
else if (c == '+')
{
piece += open;
}
코드 전문
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace baek2
{
class Program
{
static void Main(string[] args)
{
string line = Console.ReadLine();
string line2 = line.Replace("()", "+");
int open = 0;
int piece = 0;
foreach(char c in line2)
{
if (c == '(')
open++;
else if (c == ')')
{
open--;
piece++;
}
else if (c == '+')
{
piece += open;
}
}
Console.WriteLine(piece);
}
}
}
반응형
'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글
백준 C# - 1935 +) 풀이 (0) | 2023.10.20 |
---|---|
백준 C# - 17298 +) 풀이 (0) | 2023.10.17 |
백준 C# - 17413 +) 풀이 (0) | 2023.10.15 |
백준 C# - 1753 +) 풀이 단계 설명 (0) | 2023.10.09 |
백준 C# - 10866 (0) | 2023.10.04 |
댓글