Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- RecyclerView
- 자바스크립트
- 구글맵스
- 랜덤넘버
- 안드로이드
- TypeScript
- TextView
- Java
- JS
- fragment
- Kotlin
- 스프링부트
- Javscript
- Linux
- array
- npm
- nodejs
- 오버라이딩
- 코틀린
- button
- React
- scrollview
- Android
- GoogleMaps
- 리액트
- 랜덤번호
- Hook
- SpringBoot
- JavaScript
- stylesheet
Archives
- Today
- Total
타닥타닥 개발자의 일상
kotlin BooleanArray, Math.random 이용하여 중복되지 않는 랜덤 번호 골라주는 함수 만들기 본문
코딩 기록/Kotlin
kotlin BooleanArray, Math.random 이용하여 중복되지 않는 랜덤 번호 골라주는 함수 만들기
NomadHaven 2022. 2. 8. 22:28
예를들어 1부터 10까지의 수중 중복되지 않는 3개의 숫자를 고른다면
아래와 같은 함수를 만들어서 랜덤 번호를 뽑을 수 있다.
fun random() {
var randNum: IntArray = IntArray(3)
//구하고자하는 랜덤번호 3가지를 넣을 정수 배열을 선언한다.
var switch = BooleanArray(10)
//switch는 10개의 공간이 모두 0으로 채워진 배열이라고 가정한다.
for (i in switch.indices){
switch[i] = false
// 스위치가 false라는 말은 값이 배열에 있는 값이 전부 0 으로 세팅 되었다는 말이다.
}
var w =0
while(w<3){
//뽑고 싶은 랜덤 번호의 숫자가 3개이므로 w은 <3으로 설정한다.
var r = (Math.random() * 10).toInt()
//var r은 1~9 사이에서 랜덤으로 뽑힌 숫자이다.
if(switch[r]==false){
switch[r] =true
//switch[r] 번째는 초기에 false, 즉 0으로 세팅되었으므로 if문의 조건문으로 성립된다.
//조건이 성립된후, r번째에 있는 switch 배열의 값은 true로 변한다.
randNum[w] = r + 1
//r은 1에서 9까지의 값이므로 1을 더한다. 그리하여 최대값을 10으로 만든다.
//제일 처음 선언헌 랜덤번호 배열에 r+1의 값을 대입한다.
w++
//3번동안 반복한다.
}
}
for(i in randNum.indices){
println("randNum[$i] = ${randNum[i]}")
}
}
IntArray, BooleanArray 의 사이즈를 다르게하여 여러가지 경우에 응용할수 있다.
ex)로또 번호 뽑기
'코딩 기록 > Kotlin' 카테고리의 다른 글
Kotlin 코틀린 random 넘버와 spinner 이용한 안드로이드 야구 게임 만들기 (0) | 2022.02.10 |
---|---|
Kotlin 안드로이드 화면에 recyclerView 사용해서 프로필 목록 만들고 프로필 클릭시 상세 화면 전환하기 (0) | 2022.02.09 |
kotlin 코틀린 안드로이드 화면에 이미지 버튼 구현하기, 버튼 클릭시 알림창 뜨게 하기 (0) | 2022.02.08 |
코틀린 Kotlin seekbar / ratingbar (별점) 안드로이드 화면에 나타내고 textview랑 연결하기 (0) | 2022.02.08 |
Kotlin 코틀린 Fragment 이용하여 안드로이드 화면 전환하고 Fragment에 아이콘 삽입하기 (1) | 2022.02.08 |
Comments