본문 바로가기
Algorithm/Programers

A로 B 만들기

by 꼬부기가우는소리 2023. 6. 5.
728x90

- 관련 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120886

 

프로그래머스

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

programmers.co.kr

 

"문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요."

 

#include <string>
#include <vector>
using namespace std;

int solution(string before, string after) {
    for (int i = 0; i < before.size(); i++)
    {
        for (int j = 0; j < after.size(); j++)
        {
            if (before[i] == after[j])
            {
                after.erase(after.begin() + j);
                break;
            }
        }
    }
    
    return after.size() == 0 ? 1 : 0;
}

하나씩 비교하여 해당되는 문자를 지우는 방법이다. 명확하지만 문자를 일일이 지우는 번거로운 과정이 수행된다.

 

순서와 상관 없이 모든 문자가 들어있는지만 확인하면 되므로, 문자열 정렬 후 비교를 해주는 방법도 있다.

#include <string>
#include <algorithm>
using namespace std;

int solution(string before, string after) {
    sort(before.begin(), before.end());
    sort(after.begin(), after.end());
    return before == after;
}
728x90

'Algorithm > Programers' 카테고리의 다른 글

피자 나눠 먹기 (2)  (0) 2023.06.06
피자 나눠 먹기 (1)  (0) 2023.06.06
자릿수 더하기  (0) 2023.06.06
모스부호 (1)  (0) 2023.06.05
세균 증식  (0) 2023.06.05

댓글