본문 바로가기
알고리즘 (C++)

[백준]20499번: Darius님 한타 안 함?

by Dev_Hugh 2024. 2. 1.
728x90
반응형

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

 

20499번: Darius님 한타 안 함?

그가 「진짜」이면 gosu, 「가짜」이면 hasu를 출력한다.

www.acmicpc.net

 

문제 접근 아이디어

1) string input 으로 한번에 입력 받습니다.

2) string temp를 선언합니다. 이게 가장 중요한데 이유는 10의 자리 이상을 받기 위해섭니다.

3) for i to input.size() 수행하면서 input[i] != '/' temp += input[i]를 넣으면서 자동으로 자리수를 채웁니다.

4) input[i] == '/' 일 때 stoi(temp)를 통해 int로 변환하고 temp = ""로 비웁니다. (이때 temp = " "면 공백 들어와서 틀립니다)

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>

#define FastIO ios::sync_with_stdio(false); std::cin.tie(NULL); std::cout.tie(NULL);

using namespace std;

int main(void)
{
	FastIO;

	string input;
	cin >> input;

	vector<int> kda; // 순서대로 kda 저장
	string temp;
	for ( int i = 0; i < input.size(); i++ )
	{
		if ( input[i] == '/' )
		{
			kda.push_back(stoi(temp));
			temp = "";
			continue;
		}
		temp += input[i];
	}
	kda.push_back(stoi(temp)); // 마지막 숫자 처리

	if ( kda[0] + kda[2] < kda[1] || kda[1] == 0)
		cout << "hasu" << "\n";
	else
		cout << "gosu" << "\n";
	return 0;
}
728x90
반응형