Deff_Dev

[프로그래머스] 카드 뭉치 (C++) 본문

코딩테스트/프로그래머스

[프로그래머스] 카드 뭉치 (C++)

Deff_a 2024. 3. 10. 18:45
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

 

이 문제는 cards1cards2의 순서에 따라 goal 문자열 벡터에 들어있는 문장을 완성시키는 문제이다.

 

cards1, cards2의 현재 순서를 나타내는 int형 변수를 선언하고 각 순서에 맞게 goal 문자열 벡터의 문자열과 비교하는 방식으로 풀이했다.

풀이

#include <string>
#include <vector>
// https://school.programmers.co.kr/learn/courses/30/lessons/159994
using namespace std;

string solution(vector<string> cards1, vector<string> cards2, vector<string> goal) {
    // 카드 1, 2의 순서
    int cardNum[2] = {0,0};
    
    for(int i = 0; i < goal.size(); i++){     
        // goal 문자열에 맞는 카드를 선택, 만약 없다면 No return
        if(cards1[cardNum[0]] == goal[i]) cardNum[0]++;
        else if (cards2[cardNum[1]] == goal[i]) cardNum[1]++;
        else return "No";     
    }
    // 선택이 완료됐다면 Yes return
    return "Yes";
}