본문 바로가기
반응형

Kotlin52

Kotlin - 정수 내림차순으로 배치하기 코딩 연습 ( 20 ) 프로그래머스 문제함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.n  return118372873211 코틀린 정수 내림차순으로 배치하기 답class Solution { fun solution(n: Long): Long { var answer:Long = n.toString().toList().sorted().reversed().joinToString("").toLong() return answer }} 코틀린 풀이n.toString(): 입력된 n을 문자열로 변환합니다. .toList(): 문자열을 리스트 형태로 변환합니다... 2023. 12. 7.
Kotlin(코틀린) - 오버라이딩(Overriding) 오버라이딩(Overriding) 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 동일한 메서드 이름, 매개변수 타입 및 개수, 반환 타입를 가진 메서드로 다시 구현하는 것을 의미합니다. 이것은 상속 관계에서 발생하며, 자식 클래스에서 부모 클래스의 메서드를 필요에 맞게 재정의할 수 있게 해줍니다 오버로딩 (Overloading) 오버로딩은 같은 클래스 내에서 메서드 이름은 동일하지만 매개변수의 타입, 개수, 또는 순서가 다른 여러 메서드를 정의하는 것입니다. 메서드가 서로 다르기 때문에 컴파일러가 호출될 메서드를 식별할 수 있습니다. 오버라이딩 사용법 open class Animal { open fun makeSound() { println("소리 모음") } } class Dog : Animal(.. 2023. 12. 6.
Kotlin(코틀린) - 스코프 함수(let, with, run, apply, also) 정리 스코프 함수 (Scope Function) ? 코틀린에서는 스코프 함수라는 특별한 종류의 함수가 있습니다. 이 함수들은 객체의 범위 내에서 코드 블록을 실행하며, 주로 객체 초기화, 속성 설정, 연산 후 결과 반환 등의 작업에 사용됩니다. 객체의 이름을 통해 하나하나 참조하지 않고 객체를 접근하고 핸들링 할 수 있는 장점이 있습니다. 주요한 코틀린 스코프 함수에는 let, run, with, apply, also 다섯 가지가 있습니다. let let 함수는 수신 객체를 람다 함수의 인자로 전달하고, 람다 함수의 결과를 반환합니다. 주로 null 체크 후에 안전하게 수행해야 할 작업이 있을 때 사용됩니다. data class Person(var name: String, var age: Int) val pe.. 2023. 12. 6.
Kotlin(코틀린) - 고차함수(Higher-order Function) 고차함수(Higher-order functions)? 고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수입니다. 코틀린에서는 람다나 함수 참조를 사용해 함수를 값으로 표현할 수 있으며, 람다나 함수 참조를 인자로 넘길 수 있거나 람다나 함수 참조를 반환하는 함수입니다. 함수 타입(Function types) 람다를 파라미터로 받는 함수를 정의 하고자 한다면, 람다 파라미터의 타입을 어떻게 선언하는지 알아야됩니다. 파라미터의 타입을 정의하기 전에 더 간단한 방법으로 람다를 지역 변수에 대입하는 방법을 나열하겠습니다. 코틀린의 타입 추론으로 덕분에 변수의 타입을 지정하지 않더라도 람다를 변수에 대입할 수 있습니다. 함수 타입 명시 // 타입 추론 val sum = {x: Int, y: Int -> .. 2023. 12. 6.
Kotlin - 정수 제곱근 판별 프로그래머스 코딩 연습 ( 19 ) 프로그래머스 문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. n return 121 144 3 -1 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 코틀린 정수 제곱근 판별 답 1) import kotlin.math.* class Solution { fun solution(n: Long): Long { var answer = sqrt(n.toDouble()).toLong() if(answer*answer == .. 2023. 12. 6.
Kotlin - 문자열을 정수로 바꾸기 프로그래머스 코딩 연습 ( 18 ) 프로그래머스 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. 예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 코틀린 문자열을 정수로 바꾸기 답 class Solution { fun solution(s: String) = s.toInt() } 코틀린 풀이 s.toInt(): 주어진 문자열 s를 정수로 변환합니다. Kotlin의 내장 함수 toInt()를 사용.. 2023. 12. 6.
Kotlin - 자연수 뒤집어 배열로 만들기 프로그래머스 코딩 연습 ( 17 ) 프로그래머스 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다 n return 12345 [5,4,3,2,1] 코틀린 자연수 뒤집어 배열로 만들기 답 class Solution { fun solution(n: Long): IntArray = n.toString().reversed().map { e -> e.toString().toInt() }.toIntArray() } 코틀린 풀이 먼저 n.toString().reversed() 정수 n을 문자열로 변환한 후, 문자열을 뒤집습니다. . map { e -> e.toString().toInt() }각 문자를 순회하면서 문자열을 정수로 변환합니다. 이를 통해 각 자리.. 2023. 12. 6.
Kotlin(코틀린) - 출력하기 프로그래머스 Lv.0 초보편 #1 문자열 출력하기 문제 문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요. 입력 #1 출력 #1 HelloWorld! HelloWorld! 정답 fun main(args: Array) { val s1 = readLine()!! println("$s1") } a 와 b 출력하기 문제 정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요. 입력 #1 출력 #1 4 5 a = 4 b = 5 정답 fun main(args: Array) { val (a, b) = readLine()!!.split(' ').map(String::toInt) println("a = $a") println("b = $b") } 문자열 반복해서 출력하기 문제 문자열 st.. 2023. 12. 5.
Kotlin(코틀린) - 널 안전성 (Null-Safety) 널 안전성 (Null Safety) ? null safety(널 안전성)를 강조하는 프로그래밍 언어로, null에 대한 안전한 처리를 지원합니다. NullPointerException(NPE)과 같은 예외를 방지하고 프로그램의 안정성을 향상시키는 데 도움이 됩니다. 코틀린은 Nullable과 Non-Null 타입으로 프로퍼티를 선언할 수 있으며, 기본적으로 값이 null 아니고 NotNull이다. 코틀린에서는 왜 널을 기본값으로 하지 않을까? Java에서 가장 많이 발생하는 오류는 NPE(NullPointerException)입니다. 코틀린은 코드에서 NPE(NullPointerException)을 제거하기 위해서 기본적으로 허용하지 않습니다. 허나, null값을 허용하는Nullable 타입으로 프로퍼티.. 2023. 12. 5.
728x90
반응형