[프로그래머스/C++]Lv.0 - 배열의 유사도

YH J·2023년 4월 17일
0

프로그래머스

목록 보기
13/168

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120903

내 풀이

a원소 하나하나 마다 b에 있는지 체크해서 있으면 answer++하고 s2에서 b를 지워서 다음 탐색 속도를 높인다.

내 코드

#include <string>
#include <vector>

using namespace std;

int solution(vector<string> s1, vector<string> s2) {
    int answer = 0;
    for ( const auto& a : s1 )
    {
        for ( const auto& b : s2 )
        {
            if ( a == b )
            {
                answer++;
                s2.erase(s2.begin()+b);
                break;
            }
        }
    }
    return answer;
}

다른 사람의 풀이

#include <string>
#include <vector>
#include <set>

using namespace std;

int solution(vector<string> s1, vector<string> s2) {
    int answer = 0;
    set<string> s3(s1.begin(), s1.end());
    for(int i = 0; i < s2.size(); i ++)
    {
        if(s3.find(s2[i])!=s3.end())
        {
            answer++;
        }
    }


    return answer;
}

다른 사람의 풀이 해석

균형 이진트리 기반 set컨테이너를 사용해서 s1을 넣어주고 find를 사용하였다.

profile
게임 개발자 지망생

0개의 댓글