KDLiam

[Programmers ์ฝ”๋”ฉ ๊ธฐ์ดˆ ํŠธ๋ ˆ์ด๋‹ : Java] ์ด์–ด ๋ถ™์ธ ์ˆ˜ ๋ณธ๋ฌธ

Problems(Java)/Programmers

[Programmers ์ฝ”๋”ฉ ๊ธฐ์ดˆ ํŠธ๋ ˆ์ด๋‹ : Java] ์ด์–ด ๋ถ™์ธ ์ˆ˜

KDLiam 2025. 10. 10. 17:36

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 181928 - ์ง์ˆ˜/ํ™€์ˆ˜ ์ด์–ด๋ถ™์—ฌ ํ•ฉ ๊ตฌํ•˜๊ธฐ


๐Ÿ’ก ๋ฌธ์ œ ์š”์•ฝ

  • ์ •์ˆ˜ ๋ฐฐ์—ด num_list๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • ์ง์ˆ˜ ์ˆซ์ž๋งŒ ์ˆœ์„œ๋Œ€๋กœ ์ด์–ด๋ถ™์—ฌ ๋งŒ๋“  ์ˆซ์ž์™€ ํ™€์ˆ˜ ์ˆซ์ž๋งŒ ์ˆœ์„œ๋Œ€๋กœ ์ด์–ด๋ถ™์—ฌ ๋งŒ๋“  ์ˆซ์ž๋ฅผ ๊ฐ๊ฐ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋‘ ์ˆซ์ž์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ:
num_list = [3,4,5,6]
์ง์ˆ˜ ์ˆซ์ž ์ด์–ด๋ถ™์ด๊ธฐ → 46
ํ™€์ˆ˜ ์ˆซ์ž ์ด์–ด๋ถ™์ด๊ธฐ → 35
๊ฒฐ๊ณผ → 46 + 35 = 81


๐Ÿงฉ ์ฒ˜์Œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ (๋น„ํšจ์œจ์ )

 
class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        StringBuilder evenStr = new StringBuilder();
        StringBuilder oddStr = new StringBuilder();
        
        for(int i=0;i<num_list.length;i++) {
            if((num_list[i]%2)==0) {
                evenStr.append(String.valueOf(num_list[i]));
            } else {
                oddStr.append(String.valueOf(num_list[i]));
            }
        }
        
        int evenNum = Integer.parseInt(evenStr.toString());
        int oddNum = Integer.parseInt(oddStr.toString());

        return evenNum + oddNum;
    }
}

โŒ ๋ฌธ์ œ์ 

  • ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ์ด์–ด๋ถ™์ด๊ณ  ๋‹ค์‹œ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ → ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์ด ๋งŽ์Œ
  • StringBuilder ์‚ฌ์šฉ์ด ํ•„์š” ์—†๋Š” ๋ฌธ์ œ

๐Ÿงฉ ๊ฐœ์„ ๋œ ์ฝ”๋“œ (ํšจ์œจ์ )

class Solution {
    public int solution(int[] num_list) {
        int evenNum = 0;
        int oddNum = 0;

        for(int i=0;i<num_list.length;i++) {
            if(num_list[i]%2==0) {
                evenNum = evenNum*10 + num_list[i];
            } else {
                oddNum = oddNum*10 + num_list[i];
            }
        }
        return evenNum + oddNum;
    }
}

โœ… ๊ฐœ์„  ํฌ์ธํŠธ

  • ๋ฌธ์ž์—ด ๋ณ€ํ™˜ ์—†์ด ๊ณฑํ•˜๊ธฐ 10 ํ›„ ๋”ํ•˜๊ธฐ๋กœ ์ˆซ์ž ์ด์–ด๋ถ™์ž„
  • ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ๊ณผ ์—ฐ์‚ฐ ์†๋„ ํ–ฅ์ƒ
  • ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ์ง๊ด€์ ์ด๊ณ  ๊น”๋”

โšก ์„ฑ๋Šฅ ์ธก๋ฉด

ํ•ญ๋ชฉ์›๋ณธ๊ฐœ์„ 
์‹œ๊ฐ„ ๋ณต์žก๋„ O(n) + ๋ฌธ์ž์—ด ๋ณ€ํ™˜/ํŒŒ์‹ฑ ๋น„์šฉ O(n) (๋‹จ์ˆœ ์—ฐ์‚ฐ๋งŒ)
๊ณต๊ฐ„ ๋ณต์žก๋„ O(n) (StringBuilder ์‚ฌ์šฉ) O(1) (์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ฑฐ์˜ ์—†์Œ)
์‹คํ–‰ ์†๋„ ๋А๋ฆผ (๋ฌธ์ž์—ด ์—ฐ์‚ฐ ํฌํ•จ) ๋น ๋ฆ„
  • ๊ฐœ์„ ๋œ ๋ฐฉ์‹์ด ํšจ์œจ์ ์ด๋ฉฐ, ๋ฌธ์ œ ์˜๋„์— ๋” ๋ถ€ํ•ฉ

๐Ÿ“ ์ •๋ฆฌ

  • ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํžˆ ์ฝ๊ณ  ์˜๋„๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”
  • ๋ฌธ์ž์—ด ๋ณ€ํ™˜ ์—†์ด ์ˆซ์ž ์—ฐ์‚ฐ๋งŒ์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ → ๋ฉ”๋ชจ๋ฆฌ/์„ฑ๋Šฅ ๋ชจ๋‘ ํ–ฅ์ƒ
  • ์ˆซ์ž๋ฅผ ์ด์–ด๋ถ™์ผ ๋•Œ๋Š” *10 + ํ˜„์žฌ๊ฐ’ ํŒจํ„ด ๊ธฐ์–ต