주니어 기초 코딩공부/JAVA_programmers_코딩테스트

배열의 유사도_programmers_lev00

jju_developer 2022. 12. 2. 00:23
728x90

<코딩 테스트>

두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return 하도록 solution 함수를 완성해주세요.

 

<나의 풀이 과정>

우선 배열의 비교는 equals를 활용하였으며, for문으로 각 요소를 돌며 비교한 값이 true가 될경우,

answer의 값을 증가시켰습니다.

 

<나의 풀이 코드>

class Solution {
    public int solution(String[] s1, String[] s2) {
        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++;
				}
			}
		}    
        return answer;
    }
}

 

<다른 사람 풀이1>

import java.util.*;
class Solution {
    public int solution(String[] s1, String[] s2) {
        Set<String> set = new HashSet<>(Arrays.asList(s1));
        return (int)Arrays.stream(s2).filter(set::contains).count();
    }
}

<다른 사람 풀이2>

import java.util.*;
import java.util.stream.Collectors;

class Solution {
    public int solution(String[] s1, String[] s2) {
        return (int) Arrays.stream(s1).map(s -> Arrays.stream(s2).collect(Collectors.toList()).contains(s)).filter(b -> b).count();
    }
}
728x90