https://school.programmers.co.kr/learn/courses/30/lessons/159994
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <bits/stdc++.h>
using namespace std;
string solution(vector<string> cards1, vector<string> cards2, vector<string> goal) {
string answer = "";
int total_size = goal.size();
int card1_size = 0;
int card2_size = 0;
for(int i=0; i<goal.size(); i++)
{
string check_str = goal[i];
// card1에 포함되어 있는지 확인
if(cards1[0] == check_str)
{
// stl vector pop_front method
cards1.erase(cards1.begin());
card1_size++;
}
// card2에 포함되어 있는지 확인
if(cards2[0] == check_str)
{
// stl vector pop_front method
cards2.erase(cards2.begin());
card2_size++;
}
}
if(total_size == (card1_size + card2_size))
{
answer = "Yes";
}
else
{
answer = "No";
}
cout << "answer = " << answer << endl;
return answer;
}
오늘의 꿀팁!
1. C++ 코딩 테스트 문제 풀 때, 라이브러리 하나하나 include 하지말고 #include <bits/stdc++.h> 이거 하나만 하면 모든 함수가 커버 가능하다!
2. STL::vector 에서 제일 앞에 있는 데이터를 삭제하고 싶으면.. 즉, pop_front()를 구현하고 싶으면 아래와 같이 작성해보자.
erase()와 begin() 함수를 적절히 사용하면 pop_front() 함수를 구현할 수 있다!
std::vector<type> name = {,,,,};
name.erase(name.begin());
'코딩 테스트 > 프로그래머스 코딩테스트' 카테고리의 다른 글
달리기 경주 (0) | 2024.05.18 |
---|---|
둘만의 암호 (0) | 2024.05.18 |
문자열을 정수로 바꾸기 (0) | 2024.05.18 |
문자열 내 p와 y의 개수 (0) | 2024.05.18 |
영어 끝말잇기 (0) | 2022.11.29 |