본문 바로가기
Android App/Project(Kotlin)

[Code] 로또 번호 추첨 - Random(), list, set 사용 방법

by AppJinny 2022. 12. 30.

*[Code] 로또 번호 추첨 - Random(), list, set 사용 방법

-로또 번호 추첨 앱 사용 : Random()사용하지 않음

--(list에 1~45의 숫자를 넣고 리스트 자체 값을 섞고 난 뒤 섞인 값 중 앞의 6개만 뽑아 출력)

 

*범위 1~45 랜덤 값 1개 얻기

-Random() 사용

//랜덤함수 파라미터에 아무런 값을 입력하지 않으면
//나노밀리초로 랜덤값을 가져올 수 있음
val random = Random()
    
//랜덤값의 범위 지정을 위해 nextInt() 사용
//45를 지정하면 0~44까지의 숫자 중 랜덤값을 반환하여 보여줌
//1~45의 값을 얻고 싶다면 +1을 하여 값을 얻음
println("${random.nextInt(45) +1 }")

 

*범위 1~45 랜덤 값 6개 얻기

-Random() 사용

-for() 반복문 사용

    val random = Random()
    
    for(i in 1..6){
        println("${random.nextInt(45)+1}")
    }

 

 

*list를 사용해 범위 1~45 랜덤 값 6개 중복없이 얻기

-Random() 사용

-while 반복문 사용

-list.contains() 사용 : 리스트 안에 값이 있는지 검사해주는 함수

    val random = Random()
    val list = mutableListOf<Int>()
    
    //리스트 안 값이 개수가 6보다 커지기 전까지 반복문 실행
    while(list.size < 6){
        val randomNum = random.nextInt(45) +1
        //리스트 안에 값이 있는지 검사해주는 함수 contains()사용
        //리스트 안에 랜덤넘버가 있으면 다시 while문의 앞으로 와서 실행
        if(list.contains(randomNum)){
            continue
        }
        //리스트 안에 랜덤넘버가 없다면 랜덤넘버 추가
        list.add(randomNum) 
    }
    println(list)

 

*list에 1~45의 숫자를 넣고 리스트 자체 값을 섞고 난 뒤 섞인 값 중 앞의 6개만 뽑아 출력

-Random() 사용안함

-.apply{} 사용 : 리스트의 값 초기화 시 사용

-.shuffle() 사용 : 리스트의 값들을 랜덤하게 섞음

-.subList(원하는 첫 번째 인덱스, 원하는 마지막 인덱스) : 원하는 인덱스까지 출력


    val list = mutableListOf<Int>().apply{
        //.apply 초기화 시 많이 사용
        //list에 1~45숫자 넣는 코드 작성
        for(i in 1..45){
            this.add(i)
        }
    }
    
    //shuffle(): 리스트 안 숫자들을 랜덤하게 섞이도록 함
    list.shuffle()
    
    //subList()를 사용해 앞에서부터 6개까지의 인자 출력
    //subList(from인덱스, to인덱스)
    println(list.subList(0, 6))

 

 

*set을 사용하여 범위 1~45 랜덤 값 6개 얻기

-Random() 사용

--set은 중복을 허용하지 않는 리스트이며 중복된 숫자를 넣어도 실제로 추가가 되지 않음

    val random = Random()
    val numSet = mutableSetOf<Int>()
    
    while(numSet.size < 6){
        val ranNum = random.nextInt(45) +1
        numSet.add(ranNum)
    }
    println(numSet)

 

'Android App > Project(Kotlin)' 카테고리의 다른 글

[Code] 간단한 계산기 - Layout  (0) 2023.01.17
[App] 비밀 다이어리  (0) 2023.01.15
[App] 로또 번호 추첨  (2) 2022.12.31
[App] BMI(체질량지수)계산기  (0) 2022.12.28