문제 풀이: Queue 자료 구조를 사용
두 개의 문자열 배열에 해당하는 인자 cards1과 cards2는 가장 맨 앞의 원소부터 사용 될 수 있습니다.
문제에서 요구하는 제약 사항이 큐(Queue) 자료구조 동작과 일치하기 때문에 큐잉(Queueing)으로 풀이합니다.
import java.util.*;
public class Solution
{
public String solution(String[] cards1, String[] cards2, String[] goal)
{
Queue<String> q1 = new LinkedList<>(Arrays.asList(cards1));
Queue<String> q2 = new LinkedList<>(Arrays.asList(cards2));
for (String s : goal) {
if (null != q1.peek() && 0 == s.compareTo(q1.peek())) q1.poll();
else if (null != q2.peek() && 0 == s.compareTo(q2.peek())) q2.poll();
else return "No";
}
return "Yes";
}
}
코드 | 비고 | |
문제에서 제공하는 인자를 |
||
문제가 해결되지 않고 중단되면 |
문제 풀이: 두 개의 인덱스를 사용
자바의 util 패키지를 사용하지 않고 문제를 풀이합니다.
두 개의 문자열 배열에 해당하는 인자 cards1과 cards2의 마지막 큐잉 상태를 저장하는 인덱스를 생성합니다.
public class Solution
{
public String solution(String[] cards1, String[] cards2, String[] goal)
{
int idx1 = 0, idx2 = 0;
for (String s : goal) {
if (cards1.length > idx1 && 0 == cards1[idx1].compareTo(s)) {
++idx1;
} else if (cards2.length > idx2 && 0 == cards2[idx2].compareTo(s)) {
++idx2;
} else {
return "No";
}
}
return "Yes";
}
}
코드 | 비고 | |
Queue의 |
||
'Algorithm > Programmers' 카테고리의 다른 글
Level 2: 뒤에 있는 큰 수 찾기, Stack 자료 구조를 사용한 풀이 (0) | 2023.12.08 |
---|---|
Level 2: 요격 시스템, 하나의 축에서 최소한의 교집합 구하기 (0) | 2023.12.07 |
Level 2: 광물 캐기, 그리디 알고리즘 (0) | 2023.12.05 |
Level 2: PCCP 기출문제 - 석유 시추, BFS 알고리즘 (0) | 2023.12.04 |
Level 1: PCCP 기출 문제 - 데이터 분석, Stream 필터와 정렬 (0) | 2023.12.04 |