[C++] 프로그래머스 서울에서 김서방 찾기
반응형
programmers.co.kr/learn/courses/30/lessons/12919
1. 서론
level 1의 간단한 문제다. 일종의 탐색 문제?
2. 문제 풀이
String 배열에서 Kim의 index를 찾는다. 그리고 "김서방은 index에 있다"라고 출력한다.
문제 자체는 아주 간결하다. 나는 배열에서 "Kim" 이 발견되면 answer에 값을 넣게 하고 출력했다.
3. 코드 설명
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> seoul) {
string answer = "";
int i;
for (i = 0; i < seoul.size(); i++)
if(seoul[i] == "Kim")
answer += "김서방은 " + to_string(i) + "에 있다";
return answer;
}
seoul은 문자열이 담긴 배열이다. 배열을 한 바퀴 돌면서 Kim이 있는지 탐색하고 발견시에 answer에 넣어준다.
answer는 문자열이므로 숫자인 i를 담을 수 없기 때문에 to_string() 함수를 써서 숫자 i를 문자 i로 변환해준다.
오늘도 다른 사람들의 코드를 봤는데 나처럼 for문을 돌려서 찾지 않고 find() 함수를 써서 찾는 사람들을 봤다.
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
string solution(vector<string> seoul) {
string answer = "";
int pos=find(seoul.begin(),seoul.end(),"Kim")-seoul.begin();
answer="김서방은 "+to_string(pos)+"에 있다";
return answer;
}
이런 식인데 -seoul.begin()을 안 해주면 에러가 난다고 한다. find() 함수의 return 값은 iterator 값이라고 한다...
난 iterator도 모르고 find도 모른다... 공부 해야지
반응형
'Algorithm' 카테고리의 다른 글
[C++] 프로그래머스 수박수박수박수박수박수? (0) | 2020.12.03 |
---|---|
[C++] 프로그래머스 소수 찾기 (with 에라토스테네스의 체) (0) | 2020.11.18 |
[C++] 프로그래머스 문자열 다루기 기본 (0) | 2020.11.15 |
[C++] 프로그래머스 문자열 내림차순으로 배치하기 (0) | 2020.11.13 |
[C++] 프로그래머스 문자열 내 p와 y의 개수 (0) | 2020.11.12 |