091
[JAVA] 외계어 사전 본문
728x90
🔍자바 : 코딩테스트 입문. 외계어 사전
01. 코드 기획 단계
- p, s, o로 구성된 문자열 배열과 soo, sod 등과의 비교를 처음에는 for문으로 해보려다가 ss처럼 중복값이 나오거나 soo로 전부는 아니지만 어긋남없이 구성된 문자 비교가 복잡해져서 HashSet을 이용하여 문자열 구성알파벳을 뽑아내서 비교하기로 했습니다.
02. 코드 실행 및 오류 잡기
import java.util.*;
class Solution {
public int solution(String[] spell, String[] dic) {
int answer = 0;
//spellSet에 넣기 - 방법 1
HashSet<String> spellSet = new HashSet<>(Arrays.asList(spell));
/*spellSet에 넣기 - 방법 2
for(int i = 0; i < spell.length; i++){
spellSet.add(spell[i]);
}*/
for(int i = 0; i < dic.length; i++){
HashSet<String> dicSet = new HashSet<>(); //초기화
for(int c = 0; c < dic[i].length(); c++){
dicSet.add(dic[i].substring(c,c+1));
}
if(spellSet.equals(dicSet)) return 1;
}
return 2;
}
}
03. 정리
- 문자열 배열을 문자열 해쉬셋에 넣을 때는 Arrays.asList()를 사용하면 됩니다. 만약에 객체 자료형이 아닌 경우에는 for-each나 일반 for문을 이용해줘야합니다.
728x90
'Coding Test > Programmers(프로그래머스)' 카테고리의 다른 글
[JAVA] 두 개 뽑아서 더하기 (0) | 2025.04.06 |
---|---|
[JAVA] 문자열을 내림차순으로 배치하기 (0) | 2025.04.06 |
[JAVA] 정수 내림차순으로 배치하기 (1) | 2025.04.04 |
[JAVA] 연속된 수의 합 (2) | 2025.04.04 |
[JAVA] 같은 숫자는 싫어 (3) | 2025.04.03 |