[Programmers / Level1] 159994. 카드 뭉치(Java)

이하얀·2024년 7월 30일
0

🕊️ 프로그래머스

목록 보기
18/47

💡 Info




입출력 조건




입출력 예시




문제 이해


  • cards1과 cards2의 단어로 문자 goal을 만들 수 있다면 Yes, 그렇지 않다면 No를 반환하면 되는 문제


알고리즘


풀이 시간 : 12분

  • cards1과 cards2에 적힌 단어들로 조합
    • goal를 만들 수 있다면 -> "Yes"
    • 만들 수 없다면 -> "No"
import java.util.*;

class Solution {
    public String solution(String[] cards1, String[] cards2, String[] goal) {
        String answer = "";
        
        int card1Index = 0;
        int card2Index = 0;
        
        for(int i=0; i<goal.length; i++){
            if(card1Index < cards1.length && goal[i].equals(cards1[card1Index])){
                card1Index++;
                answer = "Yes";
            }

            if(card2Index < cards2.length && goal[i].equals(cards2[card2Index])){
                card2Index++;
                answer = "Yes";
            }
            
            else {
                answer = "No";
            }
            
        }
        return answer;
    }
}


오답체크


  • 테스트 케이스 미통과 문제
    • No를 출력하는 else문에서도 answer를 리턴할 수 있도록 해줘야 함.
//before
if(card2Index < cards2.length && goal[i].equals(cards2[card2Index])){
	card2Index++;
	answer = "Yes";
}
            
else {
	answer = "No";
	}
}
return answer;
//after
if(card1Index < cards1.length && goal[i].equals(cards1[card1Index])){
	card1Index++;
	answer = "Yes";
	continue;
}

if(card2Index < cards2.length && goal[i].equals(cards2[card2Index])){
	card2Index++;
	answer = "Yes";
	continue;
}

else {
	answer = "No";
	return answer;
	}
}
return answer;


최종 풀이


풀이 시간 : 16분(첫 풀이 시간 포함)

  • cards1과 cards2에 적힌 단어들로 조합
    • goal를 만들 수 있다면 -> "Yes"
    • 만들 수 없다면 -> "No"
import java.util.*;

class Solution {
    public String solution(String[] cards1, String[] cards2, String[] goal) {
        String answer = "";
        
        int card1Index = 0;
        int card2Index = 0;
        
        for(int i=0; i<goal.length; i++){
            if(card1Index < cards1.length && goal[i].equals(cards1[card1Index])){
                card1Index++;
                answer = "Yes";
                continue;
            }

            if(card2Index < cards2.length && goal[i].equals(cards2[card2Index])){
                card2Index++;
                answer = "Yes";
                continue;
            }
            
            else {
                answer = "No";
                return answer;
            }
            
        }
        return answer;
    }
}


결과


profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE 개발 기록 노트☘️

0개의 댓글