๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] ์ˆซ์ž ์ง๊ฟ

๋ฟŒ์•ผ._. 2026. 6. 25. 11:38
๋ฌธ์ œ
https://school.programmers.co.kr/learn/courses/30/lessons/131128
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 


< ์ˆซ์ž ์ง๊ฟ >

 

๋ฌธ์ œ ํ’€์ด (Java)

class Solution {
	public String solution(String X, String Y) {
		String answer = "";
		StringBuilder sb = new StringBuilder();

		int arr1[] = new int[10];
		int arr2[] = new int[10];

		for (int i = 0; i < X.length(); i++) {
			int num = X.charAt(i) - '0';
			arr1[num] += 1;
		}

		for (int i = 0; i < Y.length(); i++) {
			int num = Y.charAt(i) - '0';
			arr2[num] += 1;
		}

		for (int i = 9; i >= 0; i--) {
			int cnt = Math.min(arr1[i], arr2[i]);

			if (sb.length() == 0 && i == 0 && cnt > 0) {
				sb.append("0");
			} else {
				for (int j = 0; j < cnt; j++) {
					sb.append(i);
				}
			}
		}

		answer = sb.toString();

		if (answer.length() == 0) {
			answer = "-1";
		}

		return answer;
	}
}

 

X์™€ Y์—์„œ ๋‚˜ํƒ€๋‚œ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ๊ฐ ๊ตฌํ•œ๋‹ค. X์™€ Y์—์„œ ๊ณตํ†ต์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆซ์ž์™€ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์•ž์—์„œ ๊ตฌํ•œ ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ๋‘˜ ์ค‘ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ๊ตฌํ•œ๋‹ค. ๊ณตํ†ต์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ตœ๋Œ“๊ฐ’์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํฐ ๊ฐ’๋ถ€ํ„ฐ ๋ฌธ์ž์—ด์— ์ถ”๊ฐ€์‹œํ‚จ๋‹ค. ์ตœ์ข… ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด -1์„, 0๋ฐ–์— ์—†๋‹ค๋ฉด 0์„, ๋‘˜ ๋‹ค ์•„๋‹ˆ๋ผ๋ฉด ๋ฌธ์ž์—ด์„ answer์— ์ €์žฅํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค.



 

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, 
https://school.programmers.co.kr/learn/challenges