## Collection과 Iteration을 활용하여 아래 문제를 해결하시오.
1. 루프(for)를 2번 사용하여 다음과 같이 구구단 출력하도록 프로그램 만들기.
2x2=4
2x3=6
…(중략)…
9x8=72
9x9=81
* Collection와 Iteration을 활용
* 단, 출력할 때 문자열 내에 ${ }를 사용하여 변수를 넣어서 사용할 것
fun main() {
for (i in 2..9) {
for (j in 1..9) {
print("$i"+"x"+"$j=${i*j}")
println("")
}
println("")
}
}
2. 10명의 퀴즈 점수 15, 4, 8, 9, 13, 12, 10, 9, 11, 6 을 저장하고 있는 배열의 최소 점수와 평균 점 수를 출력하는 프로그램을 작성하시오.
* Collection와 Iteration을 활용
* 단, 최소 점수와 평균 점수를 계산하는 함수를 작성하여 사용할 것
fun main() {
var sum = 0
var min = 15
val intArrays = arrayOf(15, 4, 8, 9, 13, 12, 10, 9, 11, 6)
for (s in intArrays) {
sum+=s
if(min>s)
min=s
}
println(min)
print(sum/10)
}
3. 다음 코드가 오류 없이 실행되기 위해 밑줄 친 부분에 들어갈 코드를 작성해보시오. (단, println 으로 출력되는 결과는 모두 hello 1 이다.)
/* 문제 */
fun test( ) = "$name $num"
fun main() {
println(test("hello"))
println(test("hello", 1))
println(test(num = 1))
println(test(name = "hello"))
}
/* 정답 */
fun test(name: String = "hello", num : Int = 1) = "$name $num"
fun main() {
println(test("hello"))
println(test("hello", 1))
println(test(num = 1))
println(test(name = "hello"))
}
4. 다음 test() 함수의 리턴 값을 생각해보고 실행시켜서 확인해보자.
리턴 값 = 0
fun test() = try {
"20t".toInt()
} catch (e: NumberFormatException) {
0
}
fun main()
{
print(test())
}
5. 다음 야구 경기 스코어를 각각 배열에 저장한 다음 스코어를 회수별로 출력하고, 점수의 합을 출력하는 프로그램을 작성하시오.
회 1 2 3 4 5 6 7 8 9
Korea 0 0 0 0 1 0 0 2 0
Japan 1 1 0 0 0 0 0 0 0
출력 예시)
* 단, 출력할 때에는 Collection의 forEach를 사용해볼 것, print와 println의 차이도 생각해 볼 것
fun main() {
val Korea = arrayOf(0, 0, 0, 0, 1, 0, 0, 2, 0)
val Japan = arrayOf(1, 1, 0, 0, 0, 0, 0, 0, 0)
var Koreasum=0
var Japansum=0
println("야구 스코어")
println("")
print("회\t")
for (i in 1..9) {
print("$i ")
}
println("Run")
print("Korea\t")
Korea.forEach { i->
print("${i}"+" ")
Koreasum += i
}
println(Koreasum)
print("Japan\t")
Japan.forEach { i->
print("${i}"+" ")
Japansum += i
}
println(Japansum)
}
6. 리스트를 입력 받아 이진 탐색 기반으로 특정 숫자를 찾아 해당 위치를 리턴하는 함수 만들기.
/* 문제 */
fun find_number(a : Int, list : List<Int>) : Int {
// 함수 정의 //
}
fun main()
{
val a = listOf(1,2,3,4,5,6,7,8,9,10)
println(find_number(2, a)) // 1
println(find_number(9, a)) // 8
println(find_number(5, a)) // 4
}
/* 정답 */
fun find_number(a: Int, list: List<Int>): Int {
//이렇게 indexOf 함수를 이용하면 편리하겠지만.. 이진탐색 쓰라네요;
//return list.indexOf(a)
var left = 0
var right = list.size - 1
while (left <= right) {
val mid = left + (right - left) / 2
when {
list[mid] == a -> return mid
list[mid] < a -> left = mid + 1
else -> right = mid - 1
}
}
return -1 // 숫자를 찾지 못한 경우
}
fun main() {
val a = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
println(find_number(2, a)) // 1
println(find_number(9, a)) // 8
println(find_number(5, a)) // 4
}
'Android > Kotlin' 카테고리의 다른 글
# 코틀린OOP 실습 2주차 (0) | 2024.03.19 |
---|