[프로그래머스] 카드 뭉치

fsm12·2023년 6월 26일
0

프로그래머스

목록 보기
21/57
post-thumbnail
post-custom-banner

문제링크

문제 이해

[ 입력형태 / 조건 ]

cards1
범위 | ["i", "drink", "water"] | 1 ≤ cards1의 길이, cards2의 길이 ≤ 10

cards2
범위 | ["want", "to"] | 1 ≤ cards1의 길이, cards2의 길이 ≤ 10

goal
범위 | ["i", "want", "to", "drink", "water"] | 2 ≤ goal의 길이 ≤ cards1의 길이 + cards2의 길이

[ 문제 ]

=> cards1과 cards2에 적힌 단어들로 goal를 만들 있다면 "Yes"를, 만들 수 없다면 "No"를 return

[ 풀이 ]

cards1과 cards2 값들은 중복이 없으므로, 순차적으로 가능한지만 판단하면 되므로 스택처럼 포인터를 증가시키는 방식으로 구현함



코드

> [성공] 1차 시도 : stack 구현

  • 생각한 풀이 그대로 구현
class Solution {
    public String solution(String[] cards1, String[] cards2, String[] goal) {
        boolean isPossi = false;
        
        int cs1 = 0, cs2 = 0, len1 = cards1.length, len2 = cards2.length;
        for(String want : goal){
            if(cs1 < len1 && cards1[cs1].equals(want)){
                cs1+=1;
                continue;
            }
            
            if(cs2 < len2 && cards2[cs2].equals(want)){
                cs2+=1;
                continue;
            }
            
            isPossi = true;
            break;
        }
        
        return isPossi?"No":"Yes";
    }
}

post-custom-banner

0개의 댓글