본문 바로가기
반응형

분류 전체보기124

Kotlin(코틀린) - 지연 초기화(lateinit , lazy) 지연 초기화 ( lateinit, lazy ) ? lateinit과 lazy는 모두 Kotlin에서 변수를 지연 초기화하는 데 사용되는 기술입니다. 그러나 두 가지 기술은 목적과 사용법에서 차이가 있습니다. 두 기능은 초기화를 나중으로 미루는데 사용되지만, lateinit은 초기화 이전에는 사용할 수 없고, lazy는 처음 사용될 때 초기화되며 이후에는 더 이상 초기화하지 않습니다. 선택은 상황과 목적에 따라 다르며, lateinit은 var 변수에, lazy는 val 변수에 사용됩니다. lateinit lateinit은 주로 클래스의 프로퍼티에 사용되며, 선언 이후 어느 시점에서나 초기화할 수 있는 기능을 제공합니다. 주로 의존성 주입이나 특정 메서드에서 초기화해야 하는 경우에 사용됩니다. class .. 2023. 12. 7.
Kotlin - 두 정수 사이의 합 ( 22 ) 프로그래머스 문제 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. a b return 3 5 12 3 3 3 5 3 12 코틀린 두 정수 사이의 합 답 1) class Solution { fun solution(a: Int, b: Int): Long { var answer: Long = 0 if (a b) { for (i in b..a) { answer += i } } else { answer = a.toLong() } return answer }.. 2023. 12. 7.
Kotlin - 하샤드 수 프로그래머스 코딩 연습 ( 21 ) 프로그래머스 문제 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. x return 10 true 12 true 11 false 13 false 하샤드 수? "하샤드 수 (harshad number) , "니번 수" 라고도 불리우는 수입니다. 하샤드 수 는 (주어진 진법 에서) 그 수의 "각 자릿수 숫자의 합" 으로 그 수가 "나누어지는 양의 정수" 를 말합니다. "자기자신이 각 자리숫자의 합의 몇 배가 되어서 약수와 배수의 관계가 되는 수" 를 일컫는 말입니다. 코틀린 하샤드 수.. 2023. 12. 7.
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.
728x90
반응형