[PGS] 카드 뭉치 - JAVA

최영환·2023년 8월 14일
0

Programmers

목록 보기
25/43

💡 문제

💬 입출력 예시

📌 풀이(소스코드)

class Solution {
    public String solution(String[] cards1, String[] cards2, String[] goal) {
        int idx1 = 0;
        int idx2 = 0;
        for (String s: goal) {
            if (idx1 < cards1.length && cards1[idx1].equals(s)) {
                idx1++;
                continue;
            }
            if (idx2 < cards2.length && cards2[idx2].equals(s)) {
                idx2++;
                continue;
            }
            return "No";
        }
        return "Yes";
    }
}

📄 해설

접근

  • 아주 단순한 구현 문제이다. equasl 메소드만 사용할 줄 알면 쉽게 풀 수 있다.
  • goal 의 문자열을 순서대로 순회하면서, 해당 문자열이 각각의 카드 뭉치의 다음 카드인지를 확인한다. 다음 카드가 아니면 중간에 No 를 반환하고, 순회가 무사히 끝났다면 Yes 를 반환한다.

과정

  • 각 카드 뭉치의 다음 번호를 위한 두개의 인덱스 변수 idx1, idx2 를 사용한다.
  • goal 을 순회하면서, 현재 문자열이 각 카드뭉치 cards1, cards2 의 다음 카드와 일치하는지 확인한다.
  • 일치하면 continue 를 통해 다음 문자열을 확인하고, 일치하지 않으면 No 를 반환한다.
  • 반복이 전부 끝나면, 문장 완성이 가능한 것이므로, Yes 를 반환한다.
profile
조금 느릴게요~

0개의 댓글