마스터즈 코스를 진행하며 CS 공부하기에도 시간이 너무 부족하지만
하루에 한 문제씩 알고리즘 문제 풀기를 다시 시작하려고 한다.
요즘 프로그래머스에 문제들이 많이 추가되고 있다.
예전에 프로그래머스 2단계 문제까지 전부 다 풀었었는데 추가된 문제가 많아서
전부 다 풀어보고 3단계로 가야겠다!
로직
사실 문제가 너무 간단해서 로직을 크게 생각하지 않았다.
goal 배열을 순회하면서 cards1 배열과 cards2 배열을 동시에 탐색하면 된다.
각 cards 배열의 인덱스를 만들고 배열의 크기를 벗어나지 않으면서 goal 문자와 같으면
인덱스를 추가하고 다음 문자로 넘어간다.
만약 어떤 cards 배열의 어떤 문자도 일치하지 않으면 바로 No를 리턴해서 탐색을 종료한다.
모든 탐색이 종료되면 문자열을 만들 수 있다는 것이므로 Yes를 리턴한다.
최종 코드
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
String answer = "Yes";
int card1Index = 0;
int card2Index = 0;
for (int i = 0; i < goal.length; i++) {
if(card1Index < cards1.length && goal[i].equals(cards1[card1Index])) {
card1Index++;
continue;
}
if(card2Index < cards2.length && goal[i].equals(cards2[card2Index])) {
card2Index++;
continue;
}
answer = "No";
return answer;
}
return answer;
}
}
'코딩 테스트' 카테고리의 다른 글
(Java) 백준 15652 - N과 M (4) (0) | 2023.02.17 |
---|---|
(Java) 프로그래머스 - 둘만의 암호 (0) | 2023.02.16 |
(Java) 프로그래머스 - 베스트앨범 (0) | 2022.10.20 |
(Java) 프로그래머스 - 단속카메라 (0) | 2022.10.17 |
(Java) 프로그래머스 - 등굣길 (0) | 2022.10.17 |