#include <bits/stdc++.h>
using namespace std;
string solution(vector<string> seoul)
{
string answer = "";
string temp = "";
for (int i = 0; i < seoul.size(); i++)
{
if (seoul[i] == "Kim")
{
temp = to_string(i);
break;
}
}
answer = "김서방은 " + temp + "에 있다.";
return answer;
}
#include <bits/stdc++.h>
using namespace std;
string solution(vector<string> seoul)
{
string answer = "";
int pos = find(seoul.begin(), seoul.end(), "Kim") - seoul.begin();
answer = "김서방은 " + pos + "에 있다.";
return answer;
}
find
의 return type은 iterator이므로 seoul.begin()값을 빼주어야 int형이 나온다.반복자 , 포인터처럼 보면 될듯
예제
vector<int>::iterator iter;
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
v.push_back(50);
iter = v.begin();
cout<<iter[3]<<endl; ---> 40
iter+= 2;
cout<<*iter<<endl; ----> 30
문제에 대입해보면,
iter = find(seoul.begin(), seoul.end(), "Kim") ;
--> int형으로 받을 수 없다. 위치(주소)값이기 때문
그래서 뒤에 seoul.begin() : (0) 을 빼준다. 그러면 int형으로 받을 수 있다.
int pos = find(seoul.begin(), seoul.end(), "Kim") - seoul.begin();