์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/์ž๋ฐ”

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ์ž๋ฐ” / Lv.2] 12939 ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’

HHRR 2024. 7. 10. 22:39
๋ฌธ์ œ

 

 

์ž๋ฐ” ๊ฐœ๋…
  • Stream API๋ž€?
    ๋žŒ๋‹ค์‹์„ ์ด์šฉํ•œ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋กœ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์กฐ์ž‘ ๋ฐ ๊ฐ€๊ณต, ๋ณ€ํ™˜ํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค
    • String[] ๋ฐฐ์—ด to Integer[] ๋ฐฐ์—ด : `Arrays.stream(list).mapToInt(Integer::parseInt)`
    • ์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’ : `Arrays.stream(list).max().getAsInt()`, `Arrays.stream(list).min().getAsInt()`
ํ’€์ด

 

String ๋ฐฐ์—ด์„ Integer ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ• ๋•Œ Stream API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์ดํ•˜์˜€๋‹ค.

1. String ์ž…๋ ฅ๊ฐ’์„ split์„ ์ด์šฉํ•ด ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ String ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ

2. `Arrays.strea(list).mapToInt(Integer::parseInt)` ๋กœ String ๋ฐฐ์—ด์„ Integer ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ด์คฌ๋‹ค.

3. strem์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๋Œ“๊ฐ’ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ• ๋•Œ๋Š” `.max().getAsInt()` ๋กœ int ๊ฐ’์„ ์–ป์–ด์•ผํ•œ๋‹ค.

4. ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ด์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— StringBuilder๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

    class Solution {
        public String solution(String s) {
            StringBuilder sb = new StringBuilder();
            String[] list = s.split(" "); // ๊ณต๋ฐฑ ๊ธฐ์ค€ ๋ฌธ์ž์—ด ๋ฐฐ์—ด ์ƒ์„ฑ

            // ์ตœ๋Œ“๊ฐ’ ์ถ”์ถœ
            int max = Arrays.stream(list)
                    .mapToInt(Integer::parseInt) // String[] to Integer[]
                    .max()
                    .getAsInt();
            // ์ตœ์†Ÿ๊ฐ’ ์ถ”์ถœ
            int min = Arrays.stream(list)
                    .mapToInt(Integer::parseInt) // String[] to Integer[]
                    .min()
                    .getAsInt();

            sb.append(min + " ");
            sb.append(max);
            return sb.toString();
        }
    }