더북(TheBook)

이제 공 45개가 준비되었으니 공 7개를 뽑겠습니다. 배열 메서드인 slice()shuffle 배열에서 값 6개를 잘라 새로운 배열을 만듭니다. 이 배열은 당첨 숫자가 됩니다. 그리고 잘라낸 값들의 다음 값을 뽑습니다. 이 값은 보너스 숫자가 됩니다.

다만, 현재 shuffle 배열에 숫자가 무작위로 뒤섞여 있습니다. 당첨 숫자는 화면에 오름차순으로 표시합니다. 따라서 당첨 숫자를 뽑고 나면 정렬해야 합니다. 숫자를 오름차순으로 정렬하려면 어떻게 해야 할까요?

이번에도 사람이라면 숫자를 어떻게 정렬할지 생각해 보세요. 전체 숫자를 쭉 훑어보면서 가장 작은 숫자를 가져오고, 다시 전체를 쭉 훑어보다가 그다음 작은 숫자를 가져옵니다. 이렇게 작은 순으로 하나씩 가져오다 보면 모든 숫자가 정렬됩니다. 이런 정렬 방식을 선택 정렬(selection sort)이라고 합니다. 그러나 이 방식은 가장 효율적인 정렬 방식은 아닙니다. 사람이 직관적으로 떠올리는 방식보다 더 좋은 해결법(더 효율적인 알고리즘)이 얼마든지 있습니다.

이 책에서 각종 정렬 방법을 구현하기는 어려우므로 따로 책을 보거나 인터넷으로 검색해 보세요. 여기서는 배열의 정렬 메서드인 sort()를 사용해 오름차순으로 정렬하겠습니다. 배열 크기가 커질수록 선택 정렬보다 효율이 훨씬 좋아집니다.

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