본문 바로가기
프로그래머스 C++/Level.1

프로그래머스 Level.1 서울에서 김서방 찾기

by yeni_0224 2023. 9. 24.
728x90
반응형

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

문제를 바로 이해하지 못했다. 오랜만에 프로그래머스를 풀었더니 감떨어진게 확실하다.

x에는 인덱스 값이 들어가야 하는 것이다.

문제가 있다면 저 문자열의 가운데 있는 숫자에 값을 넣어주어야하는데, 어떻게 넣을 것인가 고민이 되었다.

printf( "김서방은 %d에 있다", i);

이런 느낌으로 넣을 수 있었으면 했는데 c++에서, return해야할 때는 어떻게 해야할 것인가. 고민이 많았고,

역시 이 부분은 오리지널 c++의 기능적인 부분을 알아야 해결할 수 있는 문제라 판단했다.

그래서 중간에 정수를 삽입하여 출력할 수 있는 방법을 검색했고,

 

"출력할 문자"+값+"출력할 문자"

이런 형식으로 출력하면 된다는 것을 알 수 있었다.

하지만 가운데에 출력할 숫자값은 문자가 아닌 정수이기 때문에 to_string()으로 한번 묶어줘야했다.

그렇게 완성한 풀이..

#include <string>
#include <vector>

using namespace std;

string solution(vector<string> seoul) {
    string answer = "";
    for(int i = 0; i < seoul.size(); i++){
        if(seoul[i] == "Kim"){
            answer += "김서방은 "+to_string(i)+"에 있다";
        }
    }
    return answer;
}

 

728x90
반응형