[문제]
https://www.acmicpc.net/problem/2083
2083번: 럭비 클럽
입력 받은 각 회원에 대해 이름과 분류를 출력한다. 성인부 회원이면 'Senior', 청소년부 회원이면 'Junior'를 출력한다.
www.acmicpc.net
[문제 풀이]
한줄씩 입력을 받아서 만약 "# 0 0"이면 종료하고 아니면 split을 통해서 입력받은 string을 s[0],s[1],s[2]로 나누었다.
s[1]과 s[2]가 조건을 만족하면 s[0],Senior를 출력 아니면 s[0],Junior를 출력시켰다.
[회고]
사실 string, int, int로 받아서 해결해도 되는데 최근에 프로그래머스등의 문제에서 string으로 입력을 받아서 해결해야 하는 경우가 많아져서 split 함수를 구현해서 풀었다. 예전엔 가끔 버벅였는데 이제는 제대로 체득이 된듯 치는 모습에 좀 뿌듯함.
[코드]
#include <iostream>
#include <sstream>
#include <vector>
#define endl "\n"
using namespace std;
vector<string> split(string str,char delimeter){
vector<string> answer;
istringstream iss(str);
string buffer;
while(getline(iss,buffer,delimeter)){
answer.push_back(buffer);
}
return answer;
}
int main(){
string s;
while(getline(cin,s)){
if(s == "# 0 0"){
break;
}
vector<string> result;
result = split(s,' ');
if(stoi(result[1]) > 17 || stoi(result[2])>= 80){
cout<<result[0]<<" Senior"<<endl;
}
else{
cout<<result[0]<<" Junior"<<endl;
}
}
return 0;
}