카테고리 없음
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 (각 줄마다 하나씩)
}