[프로그래머스 Lv1] 숫자 짝꿍

수민이슈·2023년 4월 24일
0

[C++] 코딩테스트

목록 보기
23/116
post-thumbnail

🖊️ 문제

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

🖊️ 풀이

보자마자 음.. unordered_map이나 map에 담아야겠군
근데 중복이 있어야 하니까 map이군
그니까.. map에 일단 담고
휴.. 자꾸 헷갈렸는데
인덱스를 9부터 거꾸로 내려가면 쉽게 해결됐다.
당연히 소트할 필요도 없고!
근데 이제 아니
진짜 말도안되는 실행시간이 나와서 아예 실행이 안되는거야..
보니까 무한루프 돌고있었음 ㅡㅡ
정신을좀차리시기바랍니다.

그리고 검색하다 하나 더 알아옴
문자열은.. 넘.. 헷갈려

int -> char

int n;
char c;
c = n + '0';

이렇게 해주면
잘 변환된당 ~

🖊️ 코드

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

using namespace std;

string solution(string X, string Y) {
    string answer = "";    
    map<char, int> mx;
    map<char, int> my;
    
    for (int i = 0 ; i < X.length() ; i++) {
        mx[X[i]] += 1;
    }
    
    for (int i = 0 ; i < Y.length() ; i++) {
        my[Y[i]] += 1;
    }
    
    for (int i = 9 ; i >= 0 ; i--) {
        for (int j = 0 ; j < min(mx[i + '0'], my[i+'0']) ; j++)  {
            answer += i + '0';
        }
    }
    
    if (answer == "") answer = "-1";
    else if (answer[0] == '0') answer = "0";
    
    return answer;
}

0개의 댓글