2019๋…„ 6์›” 15์ผ ๋กœ๋˜ 1๋“ฑ ๋‹น์ฒจ๋ฒˆํ˜ธ

์ด๋ฒˆ์—๋Š” ์ž๋ฐ”๋กœ ๋กœ๋˜ ๋ฒˆํ˜ธ ์ž๋™ ์ƒ์„ฑ๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ธฐ์ „์— ์šฐ์„  ๋กœ๋˜์˜ ๊ทœ์น™๋ถ€ํ„ฐ ์•Œ์•„์•ผ ๊ฒ ์ฃ .

๋กœ๋˜์—๋Š” 1๋ถ€ํ„ฐ 45๊นŒ์ง€์˜ ์ˆซ์ž๊ฐ€ ์กด์žฌํ•˜๊ณ 

๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ด 7๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋žœ๋คํ•˜๊ฒŒ ๋ฝ‘์Šต๋‹ˆ๋‹ค.

๊ฐ ์ˆซ์ž๋Š” ์ค‘๋ณต๋˜์–ด ์„ ํƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ํ‚ค ํฌ์ธํŠธ ๋‹จ์–ด๋Š” ๋ฐ”๋กœ ๋žœ๋ค๊ณผ ์ค‘๋ณต ์ž…๋‹ˆ๋‹ค.

์ž๋ฐ”์—์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ Set์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

์ž, ๊ทธ๋Ÿผ ๋žœ๋คํ•˜๊ฒŒ ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์—์„œ ๋žœ๋คํ•œ ์ˆซ์ž๋ฅผ ์–ป์„ ๋•Œ๋Š” Math.random() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฉ”์„œ๋“œ๋Š” 0๋ถ€ํ„ฐ 1์‚ฌ์ด์˜ double ํ˜•ํƒœ์˜ ์†Œ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ค๋‹ˆ๋‹ค.

์˜ค์ž‰?? ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ 1๋ถ€ํ„ฐ 45๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ์–ป๋Š”๋‹ค๋Š” ๊ฑธ๊นŒ์š”??

์ด์ œ๋ถ€ํ„ฐ ํŠธ๋ฆญ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Math.random()์€ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ  1๋ณด๋‹ค ์ž‘์€ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์–ป๊ณ ์žํ•˜๋Š” max์ˆซ์ž๋ฅผ ๊ณฑํ•ด์ฃผ๋ฉด

0๋ถ€ํ„ฐ max๊ฐ’ ์‚ฌ์ด์˜ double ํ˜•ํƒœ์˜ ์ˆซ์ž๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์ด ์ˆซ์ž๋ฅผ ๋‹ค์‹œ intํ˜•ํƒœ๋กœ casting์„ ํ•ด๋ฒ„๋ฆฌ๋ฉด?

0<= ์›ํ•˜๋Š” ์ˆซ์ž < max ์‚ฌ์ด์˜ int ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ์ œ๋ฅผ ํ•œ๋ฒˆ ๋ณด์—ฌ๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

public static void main(String[] args) {
  getRandomNumber();
}
	
private static void getRandomNumber() {
  final int max = 46;
  for(int i = 0; i < 10; i++) {
    int randomNumber = (int)(Math.random() * max);
    System.out.println(randomNumber);
  }
}

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

0
12
34
27
5
21
10
24
43

์œ„ ๊ฒฐ๊ณผ์—๋Š” ์ค‘๋ณต๋œ ์ˆซ์ž๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์•˜์ง€๋งŒ

๋ช‡ ๋ฒˆ ์‹คํ–‰ํ•˜๋‹ค๋ณด๋ฉด ๋™์ผํ•œ ์ˆซ์ž๊ฐ€ ์—ฐ์†์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ Set์ž…๋‹ˆ๋‹ค.

Set์€ ์ž๋ฐ”์—์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ ์ž ํ•  ๋•Œ ์•„์ฃผ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

Set์˜ ๊ตฌํ˜„์ฒด๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ฒƒ์€ HashSet์ž…๋‹ˆ๋‹ค.

์•„๋ž˜ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

public static void main(String[] args) {
  removeDuplicate();
}
	
private static void removeDuplicate() {
  Set<Integer> noDuplicated = new HashSet<>();
  noDuplicated.add(30);
  noDuplicated.add(30);
  noDuplicated.add(31);
  System.out.println(noDuplicated);
}

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

[30, 31]

๋ณด์‹œ๋Š” ๋ฐ”์™€ ๊ฐ™์ด 30์„ ๋‘ ๋ฒˆ add ํ–ˆ๋Š”๋ฐ 1๊ฐœ๋งŒ ์ €์žฅ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ด์šฉํ•ด์„œ ์ด๋ฏธ ๋ฝ‘์€ ์ˆซ์ž๋Š” ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฒˆํ˜ธ๋ฅผ ๋ฝ‘๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์•„๋ž˜๋Š” ์™„์„ฑ๋œ ๋กœ๋˜ ๋ฒˆํ˜ธ ์ƒ์„ฑ๊ธฐ์˜ ์ƒ˜ํ”Œ์ž…๋‹ˆ๋‹ค.

private static void lotto() {
  final int min = 1;
  final int max = 45;
		
  Set<Integer> selected = new HashSet<>();
  while(true) {
    int randomNumber = (int)(Math.random() * (max - min +1) + min);
    if(selected.add(randomNumber)) {
      if(selected.size() == 6) {
        break;
      }
    }
  }
  System.out.println(selected.stream().sorted().collect(Collectors.toList()));
}

์œ„ ๋ฉ”์„œ๋“œ๋ฅผ main ํ•จ์ˆ˜์—์„œ ์‹คํ–‰์‹œํ‚ค๋ฉด

1~45๊นŒ์ง€์˜ ์ˆซ์ž๋“ค ์ค‘์—์„œ ์ค‘๋ณต๋˜์ง€ ์•Š์€ 6๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

๋žœ๋ค ๋ฒˆํ˜ธ ์ƒ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์ด ์กฐ๊ธˆ ์ˆ˜์ •๋œ ๊ฒƒ์„ ๋ˆˆ์น˜์ฑ„์…จ๋‚˜์š”?

์ € ์œ„์—์„œ ๋ณด์—ฌ๋“œ๋ฆฐ ๋กœ์ง์œผ๋กœ๋Š” 0์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •์„ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž๋ฐ”๋กœ ๋žœ๋ค ์ˆซ์ž ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋žœ๋ค ์ˆซ์ž ๊ตฌํ•˜๊ธฐ ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์œ„ ๋ฉ”์„œ๋“œ๋ฅผ 10๋ฒˆ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[5, 17, 18, 25, 29, 33]
[9, 13, 16, 26, 30, 34]
[21, 24, 27, 30, 31, 42]
[9, 15, 17, 34, 36, 42]
[2, 3, 15, 35, 38, 41]
[8, 16, 30, 31, 36, 39]
[1, 5, 11, 40, 43, 44]
[1, 3, 4, 18, 21, 39]
[4, 7, 19, 28, 38, 40]
[7, 9, 14, 18, 30, 41]

์ด์ƒ์œผ๋กœ ์ž๋ฐ”๋กœ ์‹ฌํ”Œํ•œ ๋กœ๋˜ ๋ฒˆํ˜ธ ์ž๋™ ์ƒ์„ฑ๊ธฐ ๋งŒ๋“ค๊ธฐ ํฌ์ŠคํŒ…์„ ๋งˆ์น˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ์‹œ๋ฉด ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์‹œ๊ณ ,

ํฌ์ŠคํŒ… ๋‚ด์šฉ์ด ๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ๊ณต๊ฐ ๊พน ๋ถ€ํƒํ•ด์š” ^-^