코린이의 소소한 공부노트

[프로그래머스/Lv.0] 배열의 유사도 본문

코딩테스트 풀이/JAVA

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

무지맘 2022. 10. 31. 11:15

1. Input

1) 문자열 배열 s1, s2

 

2. Output

1) 공통으로 갖는 원소의 개수

 

3. Constraint

1) 1 <= s1, s2의 길이 <= 100

2) 1 <= s1, s2의 원소의 길이 <= 10

3) s1s2의 원소는 알파벳 소문자로만 이루어져 있다.

4) s1s2는 각각 중복된 원소가 없다.

 

4. Example

Input: s1={“a”,“b”,“c”}, s2={“b”,“p”,“c”,“d”} -> Output: 2

설명: “b”“c”가 공통이므로 2를 반환

 

5. Code

1) 첫 코드(2022/10/19)

int answer = 0;
for(int i=0 ; i<s1.length ; i++){
    for(int j=0 ; j<s2.length ; j++)
        if(s1[i].equals(s2[j])){
            answer++;
            break; // 중복 원소를 갖지 않으므로 더 찾을 필요 없음
            }
        }
return answer;

2) 다른 방식으로 수정한 코드(2022/10/31)

ArrayList<String> set1 = new ArrayList();
ArrayList<String> set2 = new ArrayList();
for(int i=0 ; i<s1.length ; i++)
    set1.add(s1[i]);
for(int i=0 ; i<s2.length ; i++)
    set2.add(s2[i]);
set1.retainAll(set2);
return set1.size();

  - 1번 코드가 2번 코드보다 훨씬 빠름