본문 바로가기
알고리즘/프로그래머스

[C++] 서울에서 김서방 찾기(연습문제)

by 민-Zero 2020. 3. 29.

문제의 목표는 seoul이라는 배열에서 "Kim"이라는 문자열의 위치 x를 찾아 "김서방은 x에 있다"라는 문자열을 반환하면 된다. 이때 "Kim"은 한 번만 등장하며 문자열의 위치 x는 인덱스 번호로 ["Kim", "a"] 라면 x는 0이고 ["a", "Kim"]이라면 x는 1이 된다.

 

설계 및 구현

구현을 위해 주어진 함수는 string 반환값을 가지며 string타입을 원소로 가지는 벡터 seoul을 매개변수로 가지고 있다. 구현에 필요한 부분은 파이썬과 동일하다.

① 배열에서 "Kim"의 인덱스 번호 찾기

② 찾아낸 인덱스 번호를 반환할 문자열에 입력하여 반환

 

①의 수행을 위해 우선 algorithm헤더에 있는 find(s, e, target) 함수를 사용하였다. 해당 함수는 s, e구간 사이에서 target의 위치에 해당하는 반복자를 반환한다. 따라서 해당 반복자를 정수로 표현하기 위해 begin() 반복자를 빼주어 인덱스의 번호를 반환받도록 하였다. 그리고 to_string() 함수를 이용하여 해당 정수를 string타입으로 변환하였다.

②를 위해 위에서 얻어낸 string타입의 인덱스 번호를 바로 필요한 문자열 합을 통해 원하는 문자열로 반환하도록 하여 문제를 해결하였다.

 

채점도 무리없이 통과할 수 있었다.

댓글