📑 1. 문제설명

💡 2. 풀이과정
Set을 사용하던지 이중 for문 돌려서 풀면 된다.
Set은 중복을 허용하지 않고, 검색 속도가 빠르기 때문에 비교 대상인 s1을 Set으로 변환하면 s2의 각 원소가 포함되어 있는지 빠르게 확인할 수 있다.
그리고 이중 for문 으로 풀 때는 중복 카운트 피하려면 `break;` 를 써야 한다.
👨💻 3. 정답코드
Set으로 푼 코드
import java.util.*;
class Solution {
public int solution(String[] s1, String[] s2) {
Set<String> set = new HashSet<>(Arrays.asList(s1));
int cnt = 0;
for (String str : s2) {
if (set.contains(str)) cnt++;
}
return cnt;
}
}
이중 for문으로 해결한 코드
class Solution {
public int solution(String[] s1, String[] s2) {
int cnt = 0;
for (int i = 0; i < s1.length; i++) {
for (int j = 0; j < s2.length; j++) {
if (s1[i].equals(s2[j])) {
cnt++;
break;
}
}
}
return cnt;
}
}
'코딩테스트 > JAVA테스트' 카테고리의 다른 글
[프로그래머스] (Java) n의 배수 고르기 (2) | 2025.05.20 |
---|---|
[프로그래머스] (Java) 숫자 찾기 (숫자를 문자로) (2) | 2025.05.20 |
[프로그래머스] (Java) 신고 결과 받기 문제 풀이 (2) | 2025.04.02 |
[프로그래머스] (Java) 369게임 문제풀이 (16) | 2025.03.31 |
[프로그래머스] (Java) 가까운 수 문제풀이 (6) | 2025.03.31 |
📑 1. 문제설명

💡 2. 풀이과정
Set을 사용하던지 이중 for문 돌려서 풀면 된다.
Set은 중복을 허용하지 않고, 검색 속도가 빠르기 때문에 비교 대상인 s1을 Set으로 변환하면 s2의 각 원소가 포함되어 있는지 빠르게 확인할 수 있다.
그리고 이중 for문 으로 풀 때는 중복 카운트 피하려면 break;
를 써야 한다.
👨💻 3. 정답코드
Set으로 푼 코드
import java.util.*; class Solution { public int solution(String[] s1, String[] s2) { Set<String> set = new HashSet<>(Arrays.asList(s1)); int cnt = 0; for (String str : s2) { if (set.contains(str)) cnt++; } return cnt; } }
이중 for문으로 해결한 코드
class Solution { public int solution(String[] s1, String[] s2) { int cnt = 0; for (int i = 0; i < s1.length; i++) { for (int j = 0; j < s2.length; j++) { if (s1[i].equals(s2[j])) { cnt++; break; } } } return cnt; } }
'코딩테스트 > JAVA테스트' 카테고리의 다른 글
[프로그래머스] (Java) n의 배수 고르기 (2) | 2025.05.20 |
---|---|
[프로그래머스] (Java) 숫자 찾기 (숫자를 문자로) (2) | 2025.05.20 |
[프로그래머스] (Java) 신고 결과 받기 문제 풀이 (2) | 2025.04.02 |
[프로그래머스] (Java) 369게임 문제풀이 (16) | 2025.03.31 |
[프로그래머스] (Java) 가까운 수 문제풀이 (6) | 2025.03.31 |