티스토리 뷰

 

문제를 보자마자 자바에서의 contains 함수를 사용하면 되지 않을까 생각했다. 다만 내가 아는 선에서는 contains처럼 존재 여부를 true, false로 리턴해 주는 함수가 없어, 어쩔 수 없이 find를 사용하였다.

 

case 1에서 자꾸 테스트 통과를 못했고, sort를 하지 않은 것을 발견해 sort를 추가하였다. 

 

find() 함수는 position을 반환하기에, position이 없으면 npos를 리턴한다. npos는 std::string::npos이며, namespace로 std를 사용하고 있어 string::npos로 확인하였다. 

 

 

테스트는 통과하였으나... 직관적이어서 그런지, 효율적이지 못해서 인지 효율성 부분에서 적은 점수를 받았다.

 

풀이 후 다른 사람들은 어떻게 풀었나 확인해 보았고, 오늘(2020년 7월 29일) 기준 약 200여 명이 작성한 코드에서는 substr()을 사용하였다. 

 

basic_string substr(size_type pos, size_type count) const;

 

substr()은 문자열의 일부를 리턴하는데, 문자열의 pos 번째 문자부터 count 길이 만큼의 문자열을 리턴한다. 

만약, 인자로 전달된 문자열이 문자열보다 길다면, 문자열의 끝까지만 리턴한다. ex. "12", "12456" 의 경우 "12" 리턴

또한, count에 npos를 전달한다면 pos부터 문자열의 끝까지 리턴한다. ex. "123", "2"의 경우 "23"

 

즉, i번째 문자열과, i+1번째 문자열을 비교하여 같은 부분이 있다면 리턴하는 식으로 문제를 풀었다. 

 

 

참고 자료:

substr()  https://modoocode.com/235

댓글