![[프로그래머스 C++] 숫자 짝꿍](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmTRVU%2FbtsHU6iDZUi%2FQYxUdZ4b0QFlQKk65c8MX1%2Fimg.png)
[프로그래머스 C++] 숫자 짝꿍CSE/코딩 문제풀이2024. 6. 10. 20:07
Table of Contents
https://school.programmers.co.kr/learn/courses/30/lessons/131128
X와 Y를 비교하여 같이 존재하는 숫자를 골라낸 후, 그 수를 조합하여 가장 큰 수를 만드는 문제이다.
숫자의 개수까지 비교해야 하기 때문에 단순 확인보다는 조금 생각을 해야 하는 문제이다.
각 X와 Y의 개수를 확인하는 배열을 생성하여 각각 돌아서 각 숫자의 개수를 확인하였고, 두 배열에서 최소값에 따라서 큰값부터 answer에 붙여 구현하였다.
#include <string>
#include <vector>
using namespace std;
string solution(string X, string Y) {
string answer = "";
int Xnum[10];
int Ynum[10];
for (int i = 0; i < 10; i++) {
Xnum[i] = 0;
Ynum[i] = 0;
}
for (int i = 0; i < X.length(); i++) {
for (int j = 0; j < 10; j++) {
if (X[i] == '0' + j) {
Xnum[j] += 1;
}
}
}
for (int i = 0; i < Y.length(); i++) {
for (int j = 0; j < 10; j++) {
if (Y[i] == '0' + j) {
Ynum[j] += 1;
}
}
}
for (int i = 9; i >= 0; i--) {
string str;
if (Xnum[i] < Ynum[i]) {
str = to_string(i);
for (int j = 0; j < Xnum[i]; j++) {
answer += str;
}
}
else {
str = to_string(i);
for (int j = 0; j < Ynum[i]; j++) {
answer += str;
}
}
}
if (answer[0] == '0')
return "0";
else if (answer == "")
return "-1";
else
return answer;
}
'CSE > 코딩 문제풀이' 카테고리의 다른 글
[백준 C++] 1260 : DFS와 BFS (0) | 2024.11.08 |
---|---|
[프로그래머스 C++] 동영상 재생기 (0) | 2024.09.29 |
[프로그래머스 C++] 혼자 놀기의 달인 (0) | 2024.06.10 |
[프로그래머스 C++] 가장 큰 수 (0) | 2024.05.29 |
[프로그래머스 C++] K번째 수 (0) | 2024.05.29 |
@NiffJB :: 개발하는 니프
CSE & GAME 개발 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 부탁드립니다!