카테고리 없음

Kotlin 연습하기(2)

김검정 2025. 3. 24. 12:22

Kotlin에서는 fun 키워드를 사용하여 함수를 정의한다.

 

예를 들어, 두 숫자를 더하는 함수를 작성해보자

// 두 숫자를 더하는 함수 정의
fun add(a: Int, b: Int): Int {
    return a + b
}

fun main() {
    val sum = add(10, 20)
    println("10과 20의 합: $sum")  // 출력: 30
}

 

이런 함수는 다음의 장점을 갖는다.

  • 코드 재사용 : 같은 기능이 필요한 경우 함수를 여러 번 호출할 수 있다.
  • 모듈화 : 복잡한 문제를 작은 기능 단위로 나누어 작성할 수 있어, 코드 관리가 쉬워진다.
  • 가독성 향상 : 함수 이름만 보고 어떤 역할을 하는지 이해할 수 있다.

 

리스트 (List)

리스트는 여러 데이터를 순서대로 저장할 수 있는 자료구조이다. 배열과 유사하지만, 리스트는 크기가 동적으로 변할 수  있는 장점이 있다.

 

Kotlin에는 불변 리스트와 가변 리스트가 존재한다.

  • 불변 리스트 : 생성 후 수정할 수 없다.
  • 가변 리스트(MutableList) : 생성 후 요소 추가, 삭제 등이 가능하다.
// 불변 리스트 예제

fun main() {
    val fruits: List<String> = listOf("사과", "바나나", "체리")
    println("첫 번째 과일: ${fruits[0]}") // 출력: 사과
}
// 가변 리스트 예제

fun main() {
    val fruits: MutableList<String> = mutableListOf("사과", "바나나", "체리")
    fruits.add("딸기") // 새로운 과일 추가
    println("과일 목록: $fruits") // 출력: [사과, 바나나, 체리, 딸기]
}

 

리스트의 장점

  • 동적 크기 : 리스트는 요소를 자유롭게 추가하거나 삭제할 수 있어, 데이터의 양이 변할때 유용하다.
  • 다양한 내장 함수 : Kotlin은 리스트를 다루기 위한 다양한 함수(map, filter, reduce 등)를 제공하여 데이터를 쉽게 처리할 수 있다.

 

 

문제 예시

1. 두 숫자의 곱과 나눗셈

 - 문제 설명 : 두 정수를 입력받아 곱한 결과와 나눈 결과(몫)을 출력하는 함수를 각각 작성해보자

 - 힌트 : 나눗셈에서는 0으로 나누는 경우를 고려해 예외 처리를 한다.

더보기
fun multiply(a: Int, b: Int): Int {
    return a * b
}

fun divide(a: Int, b: Int): Int {
    if (b == 0) {
        println("0으로 나눌 수 없습니다.")
        return 0  // 또는 적절한 예외 처리를 할 수 있음
    }
    return a / b
}

fun main() {
    println("곱셈 결과: ${multiply(10, 5)}")    // 출력: 50
    println("나눗셈 결과: ${divide(10, 2)}")    // 출력: 5
    println("나눗셈 결과: ${divide(10, 0)}")    // 출력: 0과 "0으로 나눌 수 없습니다." 메시지
}

 

 

2. 학생 성적 평균 구하기

 - 문제 설명 : 학생들의 성적이 저장된 리스트가 주어질 때, 모든 학생의 평균 성적을 계산하여 출력하는 코드를 작성해보자

 - 힌트 : 가변 리스트 또는 불변 리스트를 사용하여 성적 데이터를 저장한다. 리스트의 모든 요소를 합산한 후, 리스트의 크기로 나눈다.

더보기
fun calculateAverage(scores: List<Int>): Double {
    var sum = 0
    for (score in scores) {
        sum += score
    }
    return sum.toDouble() / scores.size
}

fun main() {
    val scores = listOf(80, 90, 100, 70, 60)
    println("평균 성적: ${calculateAverage(scores)}") // 출력: 평균 성적: 80.0
}

 

 

3. 짝수만 출력

 - 문제 설명 : 정수 리스트가 주어졌을 때, 리스트에서 짝수인 숫자만 출력하는 코드를 작성해보자

 - 힌트 : 리스트의 각 요소를 반복문으로 순회하며, 짝수인 경우만 출력한다.

더보기
fun printEvenNumbers(numbers: List<Int>) {
    for (num in numbers) {
        if (num % 2 == 0) {
            println(num)
        }
    }
}

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    println("짝수 리스트:")
    printEvenNumbers(numbers)
    // 출력: 2, 4, 6, 8, 10 (각 줄마다 하나씩)
}