본문 바로가기
개발일지/코딩테스트

[Programmers] 옹알이(1) (c++)

by 쫌눈 2025. 4. 2.
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120956

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

https://jjomnoon-diary.tistory.com/59

 

[Programmers] 외계어 사전(c++)

https://school.programmers.co.kr/learn/courses/30/lessons/120869 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 중복된 문자가 있으면

jjomnoon-diary.tistory.com

위와 비슷한 유형의 문제.

문자열 지우고 지운 곳의 위치에 공백을 추가하여 발음할 수 있는 개수를 찾는다.

공백을 추가하는 이유는 예를 들어 " yemwooa" 라는 문자열이 있을 때, 지우기만 한다면 순서에 따라 ye, woo, ma가 다 나오기 때문에 정답이 나올 수 없다. 그래서 구분자를 공백으로 추가한 것.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<string> b = { "aya", "ye", "woo", "ma" };

int solution(vector<string> babbling) {
    int answer = 0;
	for (int i = 0; i < babbling.size(); i++)
	{
		for (int j = 0; j < b.size(); j++)
		{
			auto iter = babbling[i].find(b[j]);
			if (iter != string::npos)//exist
			{
				
				babbling[i].erase(iter, b[j].size());
				babbling[i].insert(iter, " ");
			}
		}
	}

	for (int i = 0; i < babbling.size(); i++)
	{
		babbling[i].erase(remove(babbling[i].begin(), babbling[i].end(), ' '), babbling[i].end());
		if (babbling[i].empty())
		{
			++answer;
		}
	}
    return answer;
}

728x90
반응형