728x90
<코딩 테스트>
PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요.

<나의 풀이 과정>
핵심은 Arrays.sort를 spell먼저하고
for문안에서 String 배열을 생성하여 dic에 있는 모든 문자를 하나씩 배열에 넣고 정렬,
그 후 dic에 있는 모든 문자열을 정렬했을때 spell이 모두 있으면 1을 return하도록 구현했습니다.
<나의 풀이 코드>
import java.util.Arrays;
class Solution {
public int solution(String[] spell, String[] dic) {
// 처음 들어오는 spell sort 하기
Arrays.sort(spell);
// 저장한 문자열과 동일한 것을 담고있는지 확인
for (int i = 0; i < dic.length; i++) {
// for문 안에서 String 배열 생성 후
// i가 계속 돌면서 배열을 바꿀 예정
String[] strArr = dic[i].split("");
Arrays.sort(strArr);
if (Arrays.equals(strArr, spell))
// 동일하면 1, 아니면2 리턴
return 1;
}
return 2;
}
}

<다른 사람 풀이>
class Solution {
public int solution(String[] spell, String[] dic) {
int answer = 2;
for(String dicS : dic) {
boolean isRight = true;
for(String spellS : spell) {
if(dicS.indexOf(spellS) == -1) {
isRight = false;
break;
}
}
if(isRight) {
answer = 1;
break;
}
}
return answer;
}
}
<다른 사람 풀이>
class Solution {
public int solution(String[] spell, String[] dic) {
int answer = 2;
// dic이 spell의 모든 원소를 포함하고 있고 dic의 단어와 spell의 사이즈가 같다면 answer=1;
for (int i = 0; i < dic.length; i++) {
if(dic[i].length()==spell.length){
int cnt=0;
for (int j = 0; j < spell.length; j++) {
if(dic[i].contains(spell[j])){
cnt++;
}
if(cnt==spell.length){
answer=1;
}
}
}
}
// System.out.println("answer = " + answer);
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/120913
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90
'주니어 기초 코딩공부 > JAVA_programmers_코딩테스트' 카테고리의 다른 글
로그인 성공?_programmers_lev00 (0) | 2022.12.20 |
---|---|
캐릭터의 좌표_programmers_lev00 (0) | 2022.12.20 |
컨트롤 제트_programmers_lev00 (0) | 2022.12.17 |
문자열 계산하기_programmers_lev00 (0) | 2022.12.17 |
종이 자르기_programmers_lev00 (0) | 2022.12.17 |