728x90
코드 힌트
- spell 배열의 문자 조합:
- spell 배열을 일일이 조합해도 좋지만, 사실 중요한 것은 spell 배열에 있는 각 알파벳의 개수입니다.
- 이를 위해 new int[26] 배열을 사용하여 알파벳의 개수를 세고, 이를 기반으로 다른 단어와 비교할 수 있습니다.
- dic 배열의 각 단어에서 알파벳 개수 카운트:
- spell에서 사용한 것과 동일한 방식으로, dic 배열의 각 단어에서도 알파벳의 개수를 카운트합니다.
- 주의할 점은 각 단어를 비교할 때마다, 카운트 배열을 초기화해야 한다는 것입니다. 그렇지 않으면 이전 단어의 알파벳 개수가 남아 있을 수 있습니다.
- 배열 비교하기:
- 두 배열의 알파벳 개수를 비교할 때, 직접 for 문을 작성할 수도 있지만, Java에서 제공하는 Arrays.equals() 메소드를 사용하는 것이 더 간단하고 효율적입니다. 이 메소드는 두 배열이 동일한지를 쉽게 비교할 수 있게 해줍니다.
정답은 더보기 클릭
더보기
import java.util.*;
class Solution {
public int solution(String[] spell, String[] dic) {
// 'spell' 배열의 각 알파벳 개수를 저장할 배열
int[] spellCount = new int[26];
// 사전의 단어마다 알파벳 개수를 저장할 배열
int[] dicCount;
// spell 배열을 문자열로 합친 후, 각 알파벳의 개수를 카운트
for (char c : String.join("", spell).toCharArray()) {
spellCount[c - 'a']++;
}
// 사전의 각 단어를 순회하며 알파벳 개수를 비교
for (String word : dic) {
// 각 단어의 알파벳 개수를 카운트하기 위한 배열 초기화
dicCount = new int[26];
for (char c : word.toCharArray()) {
dicCount[c - 'a']++;
}
// spellCount와 dicCount가 동일하면 일치하는 단어이므로 1을 반환
if (Arrays.equals(spellCount, dicCount)) {
return 1;
}
}
// 일치하는 단어가 없으면 2를 반환
return 2;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 로그인 성공? (0) | 2024.08.16 |
---|---|
[프로그래머스] OX퀴즈 (0) | 2024.08.16 |
[프로그래머스] 평행 (0) | 2024.08.16 |
[프로그래머스] 삼각형의 완성조건 (2) (0) | 2024.08.16 |
[프로그래머스] 구슬을 나누는 경우의 수 (0) | 2024.08.16 |