반응형

🔐 문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/159994
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔐 문제 분석
- 주어진 단어(goal)를 순차 탐색하며, cards1과 cards2 배열에 들어있는 단어가 있는지 확인한다.
- 단 cards1과 cards2 배열의 단어를 순서대로 사용해야하므로, 각 각의 배열에 대한 인덱스를 관리할 수 있는 변수를 만든 후 순차적으로 증가시키며 비교한다.
Ex)
Step1. goal[0] 단어가 cards1[0] 또는 cards2[0]의 단어와 동일한지 판단.
Step2. (cards1[0]이랑 일치한다고 가정) cards1 배열을 탐색하는 인덱스를 1 증가시킨다.
Step3. goal[1] 단어가 cards1[1] 또는 cards2[0]의 단어와 동일한지 판단.
🔐 문제 풀이
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
int card1idx = 0;
int card2idx = 0;
for (int i = 0; i < goal.length; i++) {
if (cards1.length > card1idx && goal[i].equals(cards1[card1idx])) {
card1idx++;
} else if (cards2.length > card2idx && goal[i].equals(cards2[card2idx])) {
card2idx++;
}
}
return card1idx + card2idx == goal.length ? "Yes" : "No";
}
}
반응형
'Algorithm' 카테고리의 다른 글
| [프로그래머스] Lv1. 소수 만들기 (0) | 2023.06.24 |
|---|---|
| [프로그래머스] Lv1. 덧칠하기 (0) | 2023.06.23 |
| [프로그래머스] Lv1. 푸드 파이트 대회 (0) | 2023.06.12 |
| [프로그래머스] Lv1. 모의고사 (0) | 2023.06.12 |
| [프로그래머스] Lv1. 과일 장수 (0) | 2023.06.12 |