๊ธฐ๋ก๋ฐฉ

Lv.1 : ์ˆซ์ž ์ง๊ฟ ๋ณธ๋ฌธ

CodingTest/Java

Lv.1 : ์ˆซ์ž ์ง๊ฟ

Soom_1n 2023. 4. 10. 14:43

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • 0~9๋กœ ์ด๋ฃจ์›Œ์ง„ ๋‘ ๋ฌธ์ž์—ด X, Y๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.
    • X, Y์˜ ๊ธธ์ด๋Š” 300๋งŒ๊นŒ์ง€์ด๋‹ค.
    • 0์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ๋‘ ๋ฌธ์ž์—ด์ด ๊ณตํ†ต์œผ๋กœ ๊ฐ–๊ณ  ์žˆ๋Š” ์ˆซ์ž๊ฐ€๋ฅผ ์ง๊ฟ์ด๋ผ๊ณ  ํ•œ๋‹ค.
    • ๋‘ ๋ฌธ์ž์—ด์˜ ์ง๊ฟ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
  • X, Y์˜ ๊ธธ์ด๊ฐ€ 300๋งŒ ๊นŒ์ง€ ๊ฐ€๋ฏ€๋กœ, split๋“ฑ์œผ๋กœ ๋ฐฐ์—ด์— ์ €์žฅํ•˜๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๋‹ค.
    • ๋‹จ์ˆœ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ˆซ์ž๋ฅผ ์นด์šดํŠธํ•ด ์ €์žฅํ•œ๋‹ค.
    • ์ง๊ฟ ๋ฌธ์ž์—ด์„ ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ ๋‹ค.
      • ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋„ 300๋งŒ์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ StringBuilder๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
      • ์ง๊ฟ ๋ฌธ์ž์—ด์ด ์—†๋Š” ๊ฒฝ์šฐ๋Š” "-1"์„ ๋ฆฌํ„ดํ•œ๋‹ค.
      • ์ง๊ฟ์ด 0์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ๋Š” "0"์„ ๋ฆฌํ„ดํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

class Solution {
    public String solution(String X, String Y) {
        StringBuilder sb = new StringBuilder();
        
        int[] numX = new int[10];
        int[] numY = new int[10];
        
        for(int i = 0; i < X.length(); i++) {
            numX[X.charAt(i)-'0']++;
        }
        
        for(int i = 0; i < Y.length(); i++) {
            numY[Y.charAt(i)-'0']++;
        }
        
        for(int i = 9; i >= 0; i--) {
            if (numX[i] > 0 && numY[i] > 0) {
                numX[i]--;
                numY[i]--;
                sb.append(i++);
            }
        }
        
        if (sb.length() == 0) return "-1";
        if(sb.charAt(0) == '0') return "0";
        return sb.toString();
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • X์™€ Y์˜ ์ˆซ์ž๋“ค์„ numX, numY์˜ ์ธ๋ฑ์Šค๋กœ ๋งค์น˜ํ•ด ์นด์šดํŠธํ•œ๋‹ค.
  • ๋‘ ๋ฐฐ์—ด์˜ ๊ฐ™์€ ์ธ๋ฑ์Šค์— ๊ฐ’์ด ์žˆ์œผ๋ฉด ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์— ๋ˆ„์ ํ•œ๋‹ค.
  • ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค.
  • ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด ์ง๊ฟ์ด ์—†๋‹ค๋Š” ๋ง์ด๋ฏ€๋กœ "-1"์„ ๋ฆฌํ„ดํ•œ๋‹ค.
  • ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์— 0์ด ์—ฌ๋Ÿฌ๊ฐœ ์ธ๋ฐ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ, ๊ฐ€์žฅ ์•ž ๋ฌธ์ž๊ฐ€ '0'์ด๋ฏ€๋กœ "0"์„ ๋ฆฌํ„ดํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ๋ฅผ ์˜ค๋žœ๋งŒ์— ํ’€์—ˆ๋”๋‹ˆ, IDE ํ™˜๊ฒฝ์ด ์ ์‘์•ˆ๋˜์„œ ์–ด๋ ค์› ๋‹ค.
  • ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๊ณ„์† ๋‚ฌ์—ˆ๋Š”๋ฐ, ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‹ค.
    • ์ฒ˜์Œ์—” split()์œผ๋กœ String ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜, toCharArray()๋กœ char๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ–ˆ๋Š”๋ฐ, ๋‘ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 300๋งŒ๊นŒ์ง€ ๊ฐ€๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๋“  ์‹œ๊ฐ„์ด๋“  ํ„ฐ์ง€๊ฒŒ๋œ๋‹ค.
      • ๋ฐฐ์—ด ์ธ๋ฑ์Šค๋กœ ์นด์šดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด ํ•ด๊ฒฐํ–ˆ๋‹ค.
    • ๋งˆ์ง€๋ง‰ ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์ด 0์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ถ€๋ถ„์—์„œ, Integer.parseInt(), Long.parseLong() ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
      • new BigInteger(sb.toString()).equals(BigInteger.ZERO) ๋ฅผ ์‚ฌ์šฉํ–ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค.
      • ๊ทธ๋ƒฅ ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด ์ฒ˜์Œ ๋ฌธ์ž๊ฐ€ '0'์ด๋ฉด ๊ฐ’์ด 0์ด์—ˆ๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Lv.1 : ์‚ผ์ด์‚ฌ  (0) 2023.04.10
Lv.1 : ์‚ผ์ด์‚ฌ  (0) 2023.04.10
BOJ_17143 : ๋‚š์‹œ์™•  (0) 2023.04.07
BOJ_16928 : ๋ฑ€๊ณผ ์‚ฌ๋‹ค๋ฆฌ ๊ฒŒ์ž„  (0) 2023.04.07
BOJ_17070 : ํŒŒ์ดํ”„ ์˜ฎ๊ธฐ๊ธฐ 1  (0) 2023.04.07