๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฌธ์ œ ํ’€์ด

[Java] ์กฐ๊ฑด์— ๋งž๊ฒŒ ์ˆ˜์—ด ๋ณ€ํ™˜ํ•˜๊ธฐ 3 - Programmers

๐Ÿ”Ž ๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ ๋ฐฐ์—ด arr๊ณผ ์ž์—ฐ์ˆ˜ k๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

  • k๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด arr์˜ ๋ชจ๋“  ์›์†Œ์— k๋ฅผ ๊ณฑํ•ฉ๋‹ˆ๋‹ค.
  • k๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด arr์˜ ๋ชจ๋“  ์›์†Œ์— k๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ ๋ณ€ํ™˜๋œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.


โœจ ์ดˆ๊ธฐ ํ’€์ด

์ฒ˜์Œ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด for-each ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ์กฐ๊ฑด๋ฌธ์„ ๋Œ๋ฆฌ๋ฉฐ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค:

class Solution {
    public int[] solution(int[] arr, int k) {
        int i = 0;
        int[] answer = new int[arr.length];
        for (int n : arr) {
            if (k % 2 == 0) {
                answer[i] = n + k;
            } else {
                answer[i] = n * k;
            }
            i++;
        }
        return answer;
    }
}

์ฒ˜์Œ์—๋Š” ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ‘ธ๋Š” ๋ฐ ์ง‘์ค‘ํ•ด์„œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ k๋Š” ๋ฐ˜๋ณต๋ฌธ๋งˆ๋‹ค ๋ฐ”๋€Œ๋Š” ๊ฐ’์ด ์•„๋‹ˆ๋ฏ€๋กœ, ๋งค๋ฒˆ if ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์ด ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค.


๐Ÿ”ง ๊ฐœ์„ ๋œ ํ’€์ด

k์˜ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ๋‘ ๊ฐˆ๋ž˜๋กœ ๋ถ„๋ฆฌํ•ด์„œ, ๋ถˆํ•„์š”ํ•œ ์กฐ๊ฑด๋ฌธ ๋ฐ˜๋ณต์„ ์ œ๊ฑฐํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค:

import java.util.stream.IntStream;

class Solution {
    public int[] solution(int[] arr, int k) {
        return k % 2 == 0 ?
            IntStream.of(arr).map(n -> n + k).toArray() :
            IntStream.of(arr).map(n -> n * k).toArray();
    }
}

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด k๊ฐ€ ํ™€์ˆ˜์ธ์ง€ ์ง์ˆ˜์ธ์ง€๋ฅผ ํ•œ ๋ฒˆ๋งŒ ๊ฒ€์‚ฌํ•˜๊ณ , ์ดํ›„ ๋ฐ˜๋ณต๋ฌธ์—์„œ๋Š” ๊ณ„์‚ฐ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


๐Ÿง  ๋А๋‚€ ์ 

  • if๋ฌธ ํ•˜๋‚˜์ง€๋งŒ, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ๋งค๋ฒˆ ๋“ฑ์žฅํ•˜๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŠนํžˆ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ด๋Ÿฐ ์ž‘์€ ์ตœ์ ํ™”๊ฐ€ ์ค‘์š”ํ•œ ์Šต๊ด€์ด ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ ํ’€์ด์—์„œ๋Š” ์กฐ๊ฑด์ด ๊ณ ์ •๊ฐ’์ด๋ผ๋ฉด ๋ฐ˜๋ณต ์ „์— ๋ถ„๊ธฐ ์ฒ˜๋ฆฌํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ๋ณด๋„ˆ์Šค: Java ์ŠคํŠธ๋ฆผ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ

Java์˜ Stream API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค:

import java.util.stream.IntStream;

class Solution {
    public int[] solution(int[] arr, int k) {
        return k % 2 == 0 ?
            IntStream.of(arr).map(n -> n + k).toArray() :
            IntStream.of(arr).map(n -> n * k).toArray();
    }
}

๋‹ค๋งŒ ์ŠคํŠธ๋ฆผ์€ ๊ฐ€๋…์„ฑ์€ ์ข‹์ง€๋งŒ ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ๋Š” ๋‹จ์ˆœ ๋ฐ˜๋ณต๋ณด๋‹ค ์•ฝ๊ฐ„ ๋А๋ฆด ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


โœ… ์ •๋ฆฌ

  • ์กฐ๊ฑด์ด ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์—์„œ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฐ˜๋ณต๋˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”.
  • Java์˜ ๊ธฐ์ดˆ ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•˜๋ฉด์„œ๋„, ์„ฑ๋Šฅ ์ตœ์ ํ™” ์Šต๊ด€์„ ๊ธฐ๋ฅผ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฌธ์ œ์˜€๋‹ค.