코딩 테스트
[C++]프로그래머스 레벨 2
귀건
2020. 10. 9. 02:40
728x90
반응형
1번 문제
https://programmers.co.kr/learn/courses/30/lessons/60058
코딩테스트 연습 - 괄호 변환
카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴�
programmers.co.kr
맞았다 ! 28분 걸렸다. 스택과 벡터 stl을 활용해서 짜보았다. 여기서 시간을 아꼈으면 2번을 풀지 않았을까..?
#include<string>
#include <iostream>
#include <stack>
#include <typeinfo>
using namespace std;
bool solution(string data)
{
stack<char> s;
if(data[0] == ')')
return false;
for(int i = 0; i < data.size(); i++)
{
if(data[i] == '(')
{
s.push('a');
}
else if(data[i] == ')')
{
if(s.empty())
return false;
else
s.pop();
}
}
if(s.empty())
return true;
else
return false;
}
int main()
{
string data = "(()(";
cout << solution(data) << endl;
}
2번 문제
https://programmers.co.kr/learn/courses/30/lessons/49993
코딩테스트 연습 - 스킬트리
programmers.co.kr
이 문제는 못풀었다 이런..
처음에 문제를 이해를 못해서 삽질하다가 못풀었다.
#include <string>
#include <vector>
using namespace std;
int solution(string skill, vector<string> skill_trees) {
int r = 0;
string s;
int skill_number = 0;
char* test_set = new char[26] { };
int light;
vector<char> n;
for(int i = 0; i < skill_trees.size() ; i++)
{
s = skill_trees[i];
light = 0;
for(int j = 0; skill.size(); j++)
{
for(int k = 0; s.size(); k++)
{
if(s[k] == skill[j])
{
test_set[k] = skill[j];
break;
}
}
}
for(int j = 0; j < 26; j ++)
{
if(test_set[j] != '')
{
n.push_back(test_set[j]);
}
}
//비교.
for(int j = 0; j < skill.size(); j ++)
{
if(n[j] != s[j])
{
light++;
}
}
if(light == 0)
{
r++;
}
}
return r;
}
int main()
{
string skill ("CBD");
vector<string> skill_trees{"BACDE" , "CBADF" , "AECB" , "BDA" };
cout << solution(skill, skill_trees) << endl;
}
풀다 남은 잔해..
STL 공부 + 문자열 처리가 능숙하게 안되는거 같다.
728x90
반응형