🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/159994
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📝 문제 요약
주어진 배열 cards1과 배열 cards2로 원하는 단어 배열인 goal로 만들 수 있다면,
"Yes"를 만들 수 없다면 "No"를 return 하는 solution함수를 완성하는 것이 목표입니다.
다음과 같은 규칙이 적용됩니다.
- 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다.
- 한 번 사용한 카드는 다시 사용할 수 없습니다.
- 카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다.
- 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다.

🔍 문제 풀이 (feat. 접근 방법)
1. cards 배열에서 가져온 단어가 goal의 단어와 같지 않다면, 다른 cards 배열로 넘어가서 단어를 비교한다.
2. 넘어간 후에도 같지 않다면 "No" 문자열을 return, 같다면 순서대로 새로운 배열에 담는다.
이렇게 생각하고 문제를 풀다보니....계속 에러의 연속에.... 에러가 안 나면 답이 맞지 않는다 ㅠㅠ
그래서 검색을 하여 내가 생각하기에 깔끔한 코드를 보고 이해를 했다!
그리고 주석을 달았다...!
아래 전체 코드를 참고하자~
👩🏻💻 전체 코드
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
int p1 = 0;
int p2 = 0;
// goal 배열의 값 하나씩 가져옴
for (String curStr : goal) {
// curStr이 cards1[p1] 또는 cards2[p2]에 포함하는지 확인
if (p1 < cards1.length && curStr.equals(cards1[p1])) {
p1 += 1; // cards1[p1]에 포함하는 경우 p1 +1 으로 값 증가시키기
} else if (p2 < cards2.length && curStr.equals(cards2[p2])) {
p2 += 1; // cards2[p2]에 포함하는 경우 p2 +1 으로 값 증가시키기
} else {
return "No"; // 둘 다 포함하지 않는 경우
}
}
return "Yes";
}
}
'스터디 > 묘공단 자바 코딩테스트' 카테고리의 다른 글
| [묘공단] 1, 2주 차 코딩 테스트 합격자 되기: 자바 (책 요약) (1) | 2024.04.22 |
|---|---|
| [프로그래머스/Java] 6일차 코테 문풀 - Lv. 1 과일 장수 (0) | 2024.04.21 |
| [프로그래머스/Java] 4일차 코테 문풀 - Lv. 1 추억 점수 (0) | 2024.04.19 |
| [프로그래머스/Java] 3일차 코테 문풀 - Lv. 1 명예의 전당 (1) (0) | 2024.04.18 |
| [프로그래머스/Java] 2일차 코테 문풀 - Lv. 1 완주하지 못한 선수 (0) | 2024.04.17 |