๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/Java

[Java] Math, Random, Arrays ์œ ํ‹ธ ํด๋ž˜์Šค ์™„์ „ ์ •๋ฆฌ!

by hyebin (Helia) 2025. 5. 27.
๋ฐ˜์‘ํ˜•

 


๋ชฉ์ฐจ

     

     

    Java๋Š” ์ˆซ์ž ๊ณ„์‚ฐ, ๋‚œ์ˆ˜ ์ƒ์„ฑ, ๋ฐฐ์—ด ์กฐ์ž‘ ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ๊ทธ์ค‘์—์„œ๋„ ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ๋ฐ”๋กœ Math, Random, Arrays์ž…๋‹ˆ๋‹ค.

     

    ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด ์„ธ ๊ฐ€์ง€ ์œ ํ‹ธ ํด๋ž˜์Šค์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ๋ฒ•์„ ํ•œ๋ˆˆ์— ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


    ๐Ÿ“ Math ํด๋ž˜์Šค

    Math ํด๋ž˜์Šค๋Š” ์ˆ˜ํ•™ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ •์ (static) ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

    ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.

    int max = Math.max(10, 20);
    double sqrt = Math.sqrt(16);
    double pow = Math.pow(2, 3);

     

    ์ฃผ์š” ๋ฉ”์„œ๋“œ

    ๋ฉ”์„œ๋“œ ์„ค๋ช… ์˜ˆ์ œ
    Math.abs(x) ์ ˆ๋Œ“๊ฐ’ Math.abs(-5) → 5
    Math.max(a, b) ์ตœ๋Œ€๊ฐ’ Math.max(10, 20) → 20
    Math.min(a, b) ์ตœ์†Œ๊ฐ’ Math.min(3, 7) → 3
    Math.pow(a, b) ๊ฑฐ๋“ญ์ œ๊ณฑ Math.pow(2, 4) → 16.0
    Math.sqrt(x) ์ œ๊ณฑ๊ทผ Math.sqrt(9) → 3.0
    Math.round(x) ๋ฐ˜์˜ฌ๋ฆผ Math.round(3.6) → 4
    Math.floor(x) ๋‚ด๋ฆผ Math.floor(3.6) → 3.0
    Math.ceil(x) ์˜ฌ๋ฆผ Math.ceil(3.1) → 4.0
    Math.random() 0.0 ์ด์ƒ 1.0 ๋ฏธ๋งŒ ๋‚œ์ˆ˜ Math.random() → 0.3674…
    ๐Ÿ’ก Math.random()์€ ๊ฐ„๋‹จํ•œ ๋‚œ์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์œ ์šฉํ•˜์ง€๋งŒ, ์ •๊ตํ•œ ์ œ์–ด๋Š” Random ํด๋ž˜์Šค๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

    ๐ŸŽฒ Random ํด๋ž˜์Šค

    Random ํด๋ž˜์Šค๋Š” ๋ณด๋‹ค ์ •๋ฐ€ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋‚œ์ˆ˜ ์ƒ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    nextInt(), nextDouble(), nextBoolean() ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์‹œ๋“œ(seed) ์„ค์ •๋„ ๊ฐ€๋Šฅํ•ด ๋‚œ์ˆ˜ ์‹œํ€€์Šค๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    import java.util.Random;
    
    Random rand = new Random();
    
    int i = rand.nextInt();         // ์ „์ฒด ๋ฒ”์œ„ ์ •์ˆ˜
    int i2 = rand.nextInt(10);      // 0 ~ 9
    double d = rand.nextDouble();   // 0.0 ์ด์ƒ 1.0 ๋ฏธ๋งŒ
    boolean b = rand.nextBoolean(); // true ๋˜๋Š” false

     

    ์‹œ๋“œ ์„ค์ •

    Random rand = new Random(42);  // ํ•ญ์ƒ ๋™์ผํ•œ ๋‚œ์ˆ˜ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑ
    ๋™์ผํ•œ ์‹œ๋“œ๋กœ ์ƒ์„ฑํ•˜๋ฉด ํ•ญ์ƒ ๊ฐ™์€ ๋‚œ์ˆ˜์—ด์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด, ํ…Œ์ŠคํŠธ๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ๐Ÿ“š Arrays ํด๋ž˜์Šค

    Arrays ํด๋ž˜์Šค๋Š” ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ์ •๋ ฌ, ์ถœ๋ ฅ, ๋ณต์‚ฌ, ๋น„๊ต, ํƒ์ƒ‰ ๋“ฑ ๋ฐฐ์—ด ์กฐ์ž‘์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์š”.

    ์ฃผ์š” ๋ฉ”์„œ๋“œ

    ๋ฉ”์„œ๋“œ ์„ค๋ช… ์˜ˆ์ œ
    Arrays.toString(arr) ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ Arrays.toString(new int[]{1,2})[1, 2]
    Arrays.sort(arr) ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ Arrays.sort(arr)
    Arrays.copyOf(arr, n) ๋ฐฐ์—ด ๋ณต์‚ฌ (ํฌ๊ธฐ ์ง€์ •) Arrays.copyOf(arr, 5)
    Arrays.equals(a, b) ๋‘ ๋ฐฐ์—ด ๋น„๊ต Arrays.equals(arr1, arr2)
    Arrays.fill(arr, val) ๋ฐฐ์—ด ์ „์ฒด ๊ฐ’ ์ฑ„์šฐ๊ธฐ Arrays.fill(arr, 0)
    Arrays.binarySearch(arr, key) ์ด์ง„ ํƒ์ƒ‰ (์ •๋ ฌ ํ•„์š”) Arrays.binarySearch(arr, 3)

     

    ์˜ˆ์ œ ์ฝ”๋“œ

    import java.util.Arrays;
    
    int[] nums = {5, 3, 1, 4, 2};
    
    // ์ •๋ ฌ
    Arrays.sort(nums);
    
    // ์ถœ๋ ฅ
    System.out.println(Arrays.toString(nums)); // [1, 2, 3, 4, 5]
    
    // ๋ณต์‚ฌ
    int[] copy = Arrays.copyOf(nums, 3);       // [1, 2, 3]
    
    // ๊ฐ’ ์ฑ„์šฐ๊ธฐ
    Arrays.fill(copy, 9);                      // [9, 9, 9]
    
    // ๊ฒ€์ƒ‰ (์ •๋ ฌ๋œ ๋ฐฐ์—ด๋งŒ ์‚ฌ์šฉ)
    int index = Arrays.binarySearch(nums, 3);  // 2

    ๐Ÿ™Œ ๋งˆ๋ฌด๋ฆฌ 

    ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Java์˜ ์ฃผ์š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์ธ Math, Random, Arrays์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

     

    Math, Random, Arrays๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ์“ฐ์ด๋Š” ์œ ํ‹ธ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

    ์ด๋Ÿฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋“ค์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ๋กœ์ง์„ ์ง์ ‘ ๊ตฌํ˜„ํ•  ํ•„์š” ์—†์ด ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํŠนํžˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ž‘์—…์—์„œ ๋งค์šฐ ์œ ์šฉํ•˜์ฃ .

     

    ๊ฐ ํด๋ž˜์Šค์˜ ์ฃผ์š” ํŠน์ง•์„ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋ฉด

    • Math: ์ ˆ๋Œ“๊ฐ’, ์ œ๊ณฑ, ์ œ๊ณฑ๊ทผ, ๋ฐ˜์˜ฌ๋ฆผ ๋“ฑ ์ˆ˜ํ•™ ๊ณ„์‚ฐ์„ ๊ฐ„๋‹จํžˆ ์ฒ˜๋ฆฌ
    • Random: ๋‹ค์–‘ํ•œ ๋‚œ์ˆ˜ ํƒ€์ž… ์ง€์› + ์‹œ๋“œ ์„ค์ •์œผ๋กœ ์žฌํ˜„ ๊ฐ€๋Šฅ
    • Arrays: ๋ฐฐ์—ด ์ •๋ ฌ/์ถœ๋ ฅ/๋ณต์‚ฌ/๊ฒ€์ƒ‰ ๋“ฑ ํ•ต์‹ฌ ์œ ํ‹ธ ๊ธฐ๋Šฅ ์ œ๊ณต

     

    ๋‹ค์Œ ๊ธ€์—์„œ๋Š” ์ž๋ฐ”์˜ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์ด๋‚˜ ์ถ”๊ฐ€๋กœ ์•Œ๊ณ  ์‹ถ์€ ๊ฐœ๋…์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” ๐Ÿ˜Š

    ๋ฐ˜์‘ํ˜•