본 페이지는 C++ 독학을 위해 작성한 포스트입니다 풀이과정도 포함되어있지만 문법공부에 대한 비중이 있습니다.
(+ Java언어 내용도 포함되어있습니다. )
https://school.programmers.co.kr/learn/courses/30/lessons/120908
1.문제설명
문자열 str1, str2가 매개변수로 주어집니다.
str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ str1의 길이 ≤ 100
1 ≤ str2의 길이 ≤ 100
입출력 예 설명
입출력 예 #1
"ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.
입출력 예 #2
"ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.
2. 문제해결 접근
- find()함수를 이용하여 부분 문자열이 포함여부를 확인할 수 있다
3. C++ 답안
#include <string>
#include <vector>
using namespace std;
int solution(string str1, string str2) {
int answer = 0;
if( str1.find(str2) == string::npos )answer=2;
else answer = 1;
return answer;
}
어렵지 않게 풀 수 있는 문제이지만, find()의 차이에 대해 남기고자 기록하게 되었다.
4. C++ 문법 설명과 표현법
C++에서의 find
문자열을 찾는 방법은 string에서 find함수를 사용한다.
표현법
str1.find("찾고자하는 문자열")
간단한 문법으로 문자열을 찾을 수 있지만,C++에서는 반환값을 특히 유의해야한다.
타 언어에서는 true / false로 반환하는 등의 경우가 있지만,
C++에서는 그 문자열의 위치(배열번호의 위치)를 반환한다.
그렇기 때문에, 해당문자열이 존재하지 않는지에 대해서 확인하기 위해서는
str1.find(str2) == string::npos
의 조건을 사용하여 확인할 수 있다.
참고페이지
https://kamang-it.tistory.com/437
'알고리즘 > [프로그래머스]Lv.0' 카테고리의 다른 글
[프로그래머스]Lv 0. 중복된 문자 제거 (0) | 2022.11.07 |
---|---|
[프로그래머스]Lv0. 숨어있는 숫자의 덧셈 (1) (0) | 2022.11.03 |
[프로그래머스]Lv0. 두 수의 나눗셈 (0) | 2022.11.03 |
[프로그래머스]Lv0. 문자 반복 출력하기 (0) | 2022.10.31 |
[프로그래머스]Lv0. 제곱수 판별하기 (0) | 2022.10.28 |