๐Ÿ”„ Algorithm/etc

์ž๋ฐ”(Java) - ๋กœ๋˜ ๋ฒˆํ˜ธ ์ƒ์„ฑ

kongmi 2023. 1. 7. 19:19
1 ~ 45 ์‚ฌ์ด์˜ ์ž„์˜์˜ ์ˆซ์ž 6๊ฐœ๋กœ ๊ตฌ์„ฑ

<๋ฏธ์…˜>

(1) ๋ฐฐ์—ด๋กœ ๋กœ๋˜ ๋ฒˆํ˜ธ ์ƒ์„ฑ ํ›„ ์ถœ๋ ฅ
(2) ๋ฐฐ์—ด๋กœ ๋กœ๋˜ ๋ฒˆํ˜ธ ์ƒ์„ฑ(์ค‘๋ณต ์ œ๊ฑฐ)
(3) ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ƒ์„ฑํ•ด๋ณด๊ธฐ(ArrayList, Set)

์ฒซ ๋ฒˆ์งธ

package ๋ฐฐ์—ด๋ณต์Šต;
import java.util.Arrays;

public class ArrReview {
    public static void main(String[] args) {
        int[] lottoNum = new int[6]; //๋กœ๋˜ ๋ฒˆํ˜ธ ๋‹ด์„ ๋ฐฐ์—ด ์ƒ์„ฑ(ํฌ๊ธฐ:6)
        int tmp; // ๋‚œ์ˆ˜ ์ƒ์„ฑ์‹œ ์ €์žฅํ•  ์ž„์‹œ๊ณต๊ฐ„
        boolean isExist = false; // ์ค‘๋ณต ์ฒดํฌ์‹œ ์‚ฌ์šฉ
        int index = 0;

        while (true) {
            tmp = (int) ((Math.random() * 45) + 1); // 1~45 ์‚ฌ์ด ๋‚œ์ˆ˜ ๋ฐœ์ƒ
            for (int i = 0; i < lottoNum.length; i++) {
                if (lottoNum[i] == tmp) isExist = true; // ๋ฐฐ์—ด์— ์ƒ์„ฑ๋œ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์œผ๋ฉด true
            }
            if (isExist == false) lottoNum[index++] = tmp; // ๋ฐฐ์—ด์— ์ƒ์„ฑ๋œ ๋ฒˆํ˜ธ ์—†์œผ๋ฉด ์ €์žฅ
            if (index == lottoNum.length) break; // 6๊ฐœ ๋งŒ๋“ค์–ด์ง€๋ฉด ํƒˆ์ถœ
            isExist = false;
        }
        System.out.println(Arrays.toString(lottoNum));
    }
}

๋‘ ๋ฒˆ์งธ(ArrayList)

package ๋ฐฐ์—ด๋ณต์Šต;

import java.util.ArrayList;
import java.util.List;

public class ArrReview {
    public static void main(String[] args) {
        List<Integer> lottoNum = new ArrayList<>();
        int tmp;

        while (true) {
            tmp = (int) ((Math.random() * 45) + 1);
            if (!lottoNum.contains(tmp)) lottoNum.add(tmp);
            if (lottoNum.size() == 6) break;
        }
        for(Integer e : lottoNum) System.out.println(e + " ");
    }
}

์„ธ ๋ฒˆ์งธ(Set)

package ๋ฐฐ์—ด๋ณต์Šต;
import java.util.HashSet;

public class ArrReview {
    public static void main(String[] args) {
        HashSet<Integer> lottoNum = new HashSet<>();
        while(true) {
            int tmp = (int)((Math.random() * 45) + 1);
            lottoNum.add(tmp);
            if(lottoNum.size() == 6) break;
        }
        System.out.println(lottoNum);
    }
}

* Set ๊ฐ์ฒด๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์ค‘๋ณต์ œ๊ฑฐ๋Š” ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.