카드 뭉치

Seongjin Jo·2023년 3월 6일
0

프로그래머스 LV1

목록 보기
28/31

문제

풀이

class Solution {
    public String solution(String[] cards1, String[] cards2, String[] goal) {
        String answer = "Yes";
        
        //순서가 안맞으면 "NO";
        //투포인터로 해볼까?
        int lt=0,rt=0;
        
        for(int i=0; i<goal.length; i++){
            if(goal[i].equals(cards1[lt])){
                if(lt<cards1.length-1) lt++;
            } 
            else if(goal[i].equals(cards2[rt])){
                if(rt<cards2.length-1) rt++;
            }
            else if(goal[i].equals(cards1[lt]) && goal[i].equals(cards2[rt])){
                if(lt<cards1.length-1 && rt<cards2.length-1){
                    lt++;
                    rt++;
                }
            }
            else answer="No";         
        }

        return answer;
    }
}
  1. 투포인터 변수를 선언해서 문제해결.
  2. 문자열비교는 '==' 가 아닌 'str1.equals(str2)' 로 해결해야한다. 이유는 '=='는 값자체의 참거짓을 따진다. 그래서 문자열 class의 값을 비교하려면 .equals()를 사용해야한다.

0개의 댓글