Programmers/Lv.1

프로그래머스 Lv.1 - 카드 뭉치

junnrecorder 2023. 9. 17. 00:46

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 각 단어에 현재 참조하는 인덱스를 설정한다.

2. 해당 인덱스에 목표 단어가 있다면 해당 인덱스는 다음 인덱스로 값을 변경한다.

3. 반복문을 돌고 각 인덱스의 합이 목표 단어 배열의 크기와 같으면 Yes 아니면 No를 반환하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
    public String solution(String[] cards1, String[] cards2, String[] goal) {
        int idx1 = 0// cards1의 현재 인덱스
        int idx2 = 0// cards2의 현재 인덱스
        
        for(String str : goal) {
            if(cards1.length > idx1 && str.equals(cards1[idx1])) {
                idx1++// goal 참조하는 단어가 cards1에 존재하고 그 인덱스가 오버되지 않으면 idx1 값을 증가
            } else if(cards2.length > idx2 && str.equals(cards2[idx2])) {
                idx2++// goal 참조하는 단어가 cards2에 존재하고 그 인덱스가 오버되지 않으면 idx2 값을 증가
            }
        }
        
        return idx1 + idx2 == goal.length ? "Yes" : "No"// goal 안에 단어 갯수와 같으면 Yes를 아니면 No를 반환
    }
}
cs