본문 바로가기

프로그래밍 언어/Swift

[Swift] 로또 번호 추출기 random(), flag, contains, sorted()

반응형
1. 사용자에게 게임 수를 입력 받는다.  
2. 1~45 사이의 정수 중에서 랜덤하게 6개를 뽑는다.
3. 번호가 중복되어서는 안된다. 

오늘은 랜덤함수를 이용하여 로또 번호 추출기를 만들어 보겠습니다. 💰

 

 

1.  사용자로부터 게임 수를 입력 받은뒤 Int로 형변환 한다. 

print("게임 수: ", terminator:"")
var input = readLine()
var input_num = Int(input!)!

 

2. 랜덤으로 뽑은 로또 번호를 담아둘 배열을 만든다. 

var numbers:[Int] = []

 

3. 입력 받는 게임 수 만큼 로또 번호 6개를 뽑는다. 

while numbers.count < 6{
    var number = Int.random(in: 1...45)
}

 

4-1. 번호가 중복되지 않은 경우에만 뽑은 로또 번호를 배열에 추가한다. - flag 

var flag = false
for x in numbers{
    if number == x {
        flag = true
    }
}
if !flag{
    numbers.append(number)
}

 

4-2. 번호가 중복되지 않은 경우에만 뽑은 로또 번호를 배열에 추가한다. - contains 

if !numbers.contains(number){
    numbers.append(number)
}    

flag를 사용하지 않고 contains를 사용하면 코드를 더 간결히 구사할 수 있습니다. 

 

전체 코드는 다음과 같습니다.

print("게임 수: ", terminator:"")
var input = readLine()
var input_num = Int(input!)!

for _ in 1...input_num {
    var numbers:[Int] = []
    
    while numbers.count < 6{
        var number = Int.random(in: 1...45)
        if !numbers.contains(number){
            numbers.append(number)
        }
        print(numbers.sorted())
   }
}

 

출력

게임 수: 2
[21]
[15, 21]
[5, 15, 21]
[5, 15, 18, 21]
[5, 15, 18, 20, 21]
[5, 10, 15, 18, 20, 21]
[33]
[10, 33]
[10, 33, 38]
[10, 33, 38]
[10, 33, 38, 42]
[9, 10, 33, 38, 42]
[9, 10, 16, 33, 38, 42]

 

배열을 정렬하는 방법

1. 배열.sort() : 원본 자체를 정렬 

        numbers.sort()

        print(numbers)

2. 배열.sorted()

        print(numbers.sorted())

 

 

반응형