더북(TheBook)

7.2.2 무작위로 숫자 뽑기

순서도는 그림 7-1처럼 간단하지만, 각 절차를 구현할 때는 더 깊게 생각해야 합니다. 프로그램을 시작하면 컴퓨터가 숫자 4개를 뽑는데, 이 절차는 사실 여러 단계로 구성되어 있습니다. 숫자 4개를 저장할 자리를 마련해야 하고, 숫자를 무작위로 하나씩 뽑아 저장하는 작업을 4번 반복해야 합니다. 이때 숫자는 무작위로 뽑지만, 중복되지 않게 뽑아야 합니다.

숫자야구 게임에서는 1에서 9까지의 숫자에서 무작위로 4개를 뽑습니다. 그래서 4.5.2 Math 객체에서 배운 Math.floor(Math.random() * 9 + 1)을 4번 사용하면 될 것 같습니다. 하지만 이렇게 하면 숫자가 중복될 수 있습니다. 중복되지 않게 뽑으려면 어떻게 해야 할까요?

실생활에서 무작위 숫자를 중복되지 않게 뽑는 경우가 언제인지 생각해 보세요. 바로 로또 6/45(이하 로또)입니다. 로또는 중복되지 않게 무작위로 숫자 7개(당첨 숫자 6개와 보너스 숫자 1개)를 뽑는 대표적인 예입니다. 로또는 통에 45개의 공을 모아 두고 공을 하나씩 일곱 번 뽑습니다. 한번 뽑은 공은 통에서 빠지므로 같은 숫자의 공이 뽑힐 일이 없습니다. 로또 추첨기는 8장에서 만들어 보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.