https://school.programmers.co.kr/learn/courses/30/lessons/159994
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. 의사 코드
goal 의 [0]번을 두개의 cards의 [0]과 비교하여 같은 단어가 있으면 answer에 "Yes"를 넣고 둘 다 제거
만약 없다면 answer에 "No"를 넣고 종료
goal의 개수가 모두 사라질 때 까지 반복
2. 제출 코드
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> cards1, vector<string> cards2, vector<string> goal) {
string answer = "";
while (goal.size() > 0)
{
if(goal[0] == cards1[0])
{
goal.erase(goal.begin());
cards1.erase(cards1.begin());
answer = "Yes";
continue;
}
if(goal[0] == cards2[0])
{
goal.erase(goal.begin());
cards2.erase(cards2.begin());
answer = "Yes";
continue;
}
answer = "No";
break;
}
return answer;
}
3. Trouble Shooting
- vector이기 때문에 erase가 아닌 뒤에서 부터 비교하여 pop_back을 이용한 구현을 시도
- 2 ≤ goal의 길이 ≤ cards1의 길이 + cards2의 길이
- 위 조건 때문에, card1, card2를 모두 사용하지 않고 goal을 완성할 수 있기 때문에 예외 상황 발생
- 따라서 vector의 크기가 작기 때문에 앞 부분을 지우는 erase방법으로 변경
반응형
'AlgorithmCodekata' 카테고리의 다른 글
| [AlgorithmCodeKata] 2026-05-06 | 햄버거 만들기 (3) | 2026.05.06 |
|---|---|
| [AlgorithmCodeKata] 2026-03-23 | 명예의 전당 (1) (0) | 2026.03.23 |
| [AlgorithmCodeKata] 2026-03-20 | 콜라 문제 (0) | 2026.03.20 |
| [AlgorithmCodeKata] 2026-03-18 | 문자열 내 마음대로 정렬하기 (0) | 2026.03.18 |
| [AlgorithmCodeKata] 2026-03-12 | 문자열 내 마음대로 정렬하기 (0) | 2026.03.12 |