본문 바로가기

Algorithm/Implementation

(C++, Rust) - 백준(BOJ) 10205 : 헤라클레스와 히드라

반응형

https://www.acmicpc.net/problem/10205

 

10205번: 헤라클레스와 히드라

헤라클레스는 그리스 신화의 유명한 비극적인 영웅이다. 그는 제우스의 사생아로 태어났는데, 이때문에 제우스의 아내 헤라는 그를 매우 싫어했다. 그는 매우 강한 힘과 높은 지식을 가졌지만,

www.acmicpc.net

간단 구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

test case 수, 머리 수, 행동 정보에 대한 변수 선언 후 입력받습니다.

📔 풀이과정

행동 정보에 대해 1차원 for loop를 수행합니다.

행동이 c라면 잘린머리와 거기서 자라는 2개의 머리가 되므로 1을 추가해줍니다.

b라면 자른 머리가 더 이상 나지 않으므로 1을 빼줍니다.

📔 정답출력

머리의 개수 head를 형식에 맡게 출력합니다.


📕 Code

📔 C++

#include <bits/stdc++.h>
using namespace std;
int k, head;
string behaving;
int main(){
  cin >> k;
  for(int i = 1; i <= k; i++){
    cin >> head;
    cin >> behaving;
    for(auto b : behaving) {
      if(b == 'c') head++;
      else head--;
    }
    cout << "Data Set " << i << ":\n" << head << "\n\n";
  }
}

📔 Rust

use std::io;
fn main(){
  let mut line = String::new();
  io::stdin().read_line(&mut line).expect("wrong io");
  let test_case = line.trim().parse::<i64>().unwrap();

  for i in 1..test_case+1 {
    let mut line = String::new();
    io::stdin().read_line(&mut line).expect("wrong io");

    let mut head = line.trim().parse::<i64>().unwrap();

    let mut behaving = String::new();
    io::stdin().read_line(&mut behaving).expect("wrong io");
    behaving = behaving.trim().to_string();

    for i in behaving.chars() {
      if i == 'c' {
        head += 1;
      }
      else {
        head -= 1;
      }
    }
    
    print!("Data Set {}:\n{}\n\n", i, head);
  }
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.