작성일 :

문제 링크

32399번 - 햄버거 정렬

설명

문자열 S를 (1) 형태로 만들기 위한 최소 이동 횟수를 구하는 문제입니다.


접근법

길이가 3이므로 가능한 모든 경우를 직접 확인해도 됩니다.

이미 정렬된 상태면 0, 양쪽 괄호가 모두 반대면 2, 그 외에는 1번의 이동이 필요합니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
using System;

class Program {
  static void Main() {
    var s = Console.ReadLine()!;
    if (s == "(1)") Console.WriteLine(0);
    else if (s == ")1(") Console.WriteLine(2);
    else Console.WriteLine(1);
  }
}

C++

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

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

  string s; cin >> s;
  if (s.compare("(1)") == 0) cout << 0;
  else if (s.compare(")1(") == 0) cout << 2;
  else cout << 1;

  cout << "\n";

  return 0;
}