[알고리즘문제풀기] 배열의 유사도

silver's avatar
Dec 05, 2024
[알고리즘문제풀기] 배열의 유사도

문제

 

내가 작성한 정답1 - stream

import java.util.Arrays; class Solution { public int solution(String[] s1, String[] s2) { int answer = 0; answer = (int) Arrays.stream(s1) .filter(s -> Arrays.asList(s2).contains(s)) .count(); return answer; } }
notion image
answer = (int) Arrays.stream(s1) // Arrays.asList 배열을 List로 변환 .filter(s -> Arrays.asList(s2).contains(s)) .count(); // long 타입

내가 작성한 정답2 - List

import java.util.Arrays; import java.util.List; class Solution { public int solution(String[] s1, String[] s2) { List<String> listS2 = Arrays.asList(s2); int answer = 0; for (String ele : s1) { if (listS2.contains(ele)) { answer++; } } return answer; } }

다른 사람들이 작성한 정답

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(); } }
💡
HashSet
중복된 요소를 허용하지 않는 데이터 구조로, 순서를 유지하지 않는다. null 허용
import java.util.HashSet; HashSet<String> set = new HashSet<>(); // 요소 추가 fruits.add("apple"); fruits.add("banana"); fruits.add("cherry"); fruits.add("banana"); // 중복, 추가되지 않음 // 요소 출력 System.out.println("Fruits: " + fruits); // 순서는 보장되지 않음 // 요소 포함 확인 System.out.println("Contains apple? " + fruits.contains("apple")); // true System.out.println("Contains orange? " + fruits.contains("orange")); // false // 요소 제거 fruits.remove("banana"); System.out.println("After removing banana: " + fruits); // 크기 확인 System.out.println("Number of fruits: " + fruits.size()); // 2
Share article

silver