프로그래머스 - 카드 뭉치

JIWOO YUN·2023년 3월 14일
0

문제링크

https://school.programmers.co.kr/learn/courses/30/lessons/159994

구현방법

순서의 단어 배열 규칙에 맞춰서 구현했습니다.

  • 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용
  • 한 번 사용한 카드는 다시 사용할 수없다.
  • 카드를 사용하지않고는 다음 카드로 넘어갈 수 없다.
  • 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없다.

각각의 idx를 따로 계산해서 진행합니다.

첫번째 카드의 현재 idx 위치에서 찾는 게 있는경우 idx++을 치고 넘어가고 첫번째 카드에 없는경우

두번쨰 카드의 두번째 카드의 현재 idx 위치에서 찾는게 있을 경우 두번 째카드의 idx+=1을 치고 다음 goal의 String을 찾아줍니다.

만약 없는 경우에는 NO를 리턴하고 끝내고 전부 다 돌게 되면 answer를 출력하여 끝냅니다.

구현알고리즘

간단한 구현

CODE

class Solution {
    public String solution(String[] cards1, String[] cards2, String[] goal) {
        String answer = "Yes";
        int first_card_idx = 0;
        int second_card_idx =0;
        for(int idx = 0; idx < goal.length;idx++){
            //첫번째 카드에서 idx 위치의 값이 goal과 같은경우
            if(first_card_idx < cards1.length && cards1[first_card_idx].equals(goal[idx])) {
                first_card_idx += 1;
                continue;
            }
            if(second_card_idx < cards2.length && cards2[second_card_idx].equals(goal[idx])){
                second_card_idx +=1;
                continue;
            }
            return "No";

        }
        return answer;
    }
}
profile
열심히하자

0개의 댓글