-
[프로그래머스/C++] 문자열안에 문자열알고리즘 2023. 3. 9. 18:31
문제 설명
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항- 1 ≤ str1의 길이 ≤ 100
- 1 ≤ str2의 길이 ≤ 100
- 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
입출력 예str1str2result"ab6CDE443fgh22iJKlmn1o" "6CD" 1 "ppprrrogrammers" "pppp" 2 "AbcAbcA" "AAA" 2
입출력 예 설명입출력 예 #1
- "ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.
입출력 예 #2
- "ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.
입출력 예 #3
- "AbcAbcA" str1에 str2가 없으므로 2를 return합니다.
str1과 str2 for문을 돌리며
str1과 str2에 같은 문자가 있으면 각각 한칸씩 증가 후 다시 비교 -> 반복
없으면 str1만 한칸 증가 후 다시 비교한다.
str2의 for문이 다 돌면 str1안의 str2를 찾았다는 말이니까
answer에 1을 넣고, for문을 나와서 answer이 1이아니면 2를 출력하도록 했음
#include <string> #include <vector> using namespace std; int solution(string str1, string str2) { int answer = 0; for(int i = 0; i < str1.size(); i++) { for(int j = 0; j < str2.size(); j++) { if(str1[i] != str2[j]) { break; } else { i++; } if(j == str2.size()-1) { answer = 1; } } } if (answer != 1) { answer = 2; } return answer; }
다 풀고 다른 사람들꺼 풀이보니까 find라는 함수가있네..
str1.find(str2) 하면 한줄만에 풀리는듯
'알고리즘' 카테고리의 다른 글
[프로그래머스/C++] 컨트롤 제트 (0) 2023.03.14 [프로그래머스/C++] 합성수 찾기 (0) 2023.03.09 [프로그래머스/C++] 모스부호(1) (0) 2023.03.09 [프로그래머스/C++] 진료순서 정하기 (1) 2023.03.09 [프로그래머스/C++] 최빈값 구하기 (0) 2023.03.07