목록전체 글 (119)
기록
람다함수를 이용한 특별한 기능인 스코프 함수에 대해 알아보자. 1. 람다함수의 특별한 케이스 1. 람다함수도 일반 함수처럼 여러개의 구문을 사용할 수 있다. fun main() { var c = {str: String -> println("$str 람다함수") println("여러 구문을") println("사용 가능합니다") } var calculate = {a:Int ,b:Int -> println(a) println(b) a+b } } 람다함수가 여러 줄이 되는 경우, 마지막 줄의 결과값이 반환값이 된다. 2. 파라미터가 없는 람다함수는 실행할 구문들만 나열하면 된다. fun main() { val a:()->Unit = {println("파라미터가 없어요")} val b = {"파라미터가 없어요"..
1. 고차함수 함수를 마치 클래스에서 만들어낸 인스턴스처럼 취급하는 방법. 함수를 '파라미터'로 넘겨 줄 수도 있고, '결과값으로 반환'받을 수도 있는 방법이다. 코틀린에서는 모든 함수를 고차함수로 사용 가능하다. 함수의 형식을 자료형으로 나타내는 방법 (파라미터 자료형들) -> 반환형 고차함수 형태로 파라미터를 넘기는 방법은 함수 이름 앞에 콜론을 두개 붙인다. ::는 일반함수를 고차함수로 변경해주는 연산자이다. fun main() { b(::a) } fun a(str: String) { println("$str 함수 a") } fun b(function: (String)->Unit) { function("b가 호출한") } 2. 람다함수 파라미터로 넘길 함수를 굳이 이름까지 붙여 만들어줄 필요가 있을..
변수나 함수, 클래스의 '공용 범위'를 제어하는 단위인 스코프와, 스코프 외부에서 스코프 내부로의 접근을 제한하는 접근제한자에 대해 알아보자. 1. 스코프 변수나 함수, 클래스와 같은 멤버들을 서로 공유하여 사용할 수 있는 범위를 지정해 둔 단위 1. 스코프 외부에서는 스코프 내부의 멤버를 '참조연산자'로만 참조가 가능하다. (클래스의 멤버를 참조할 때 클래스 외부에서 a.eat() 과 같이 접근) 2. 동일 스코프 내에서는 멤버들을 공유할 수 있다. val a = "패키지 스코프" class B { fun print() { println(a) } } fun main() { println(a) B().print() } default pakage에서 만드는 모든 멤버들은 같은 패키지 스코프에 포함된다. 변..
1. 프로젝트 코틀린으로 어플리케이션을 짤 때 관련한 모든 내용을 담는 '큰 틀' 2. 모듈 하나의 프로젝트는 여러개의 모듈로 이뤄질 수 있다. 모듈은 직접 만들 수도 있고, 필요한 기능을 이미 구현해 둔 '라이브러리 모듈'을 가져와 붙일 수 있다. 3. 모듈 안 하나의 프로젝트는 여러개의 모듈로 이뤄질 수 있다. 모듈은 직접 만들 수도 있고, 필요한 기능을 이미 구현해 둔 '라 모듈 안에는 다수의 폴더와 파일이 들어갈 수 있다.코틀린 코드파일(.kt) 뿐만 아니라 모듈과 관련된 설정 및 리소스 파일 등도 포함될 수 있다. 4. 패키지 위의 프로젝트, 모듈, 폴더 및 파일이 실제 파일 시스템에 기반한 물리적인 구조를 담당한다면 논리적인 구조로는 패키지가 있다. 패키지는 개발시에 소스 코드의 '소속'을 지..
https://www.egeniq.com/blog/dagger-hilt-viewmodelclass-has-no-zero-argument-constructor-causes
The style on this component requires your app theme to be Theme.AppCompat parent를 다음과 같이 변경
https://stackoverflow.com/questions/57118812/how-to-see-the-type-of-variable-within-android-studio-ide/57119447
programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 10진수를 문제에서 정의한 '124 나라의 숫자'로 변환하는 문제입니다. 문제를 처음 봤을 때 DP 문제라고 생각했다가(ㅠㅠ) 감이 잡히지 않아 타 블로그에서 3진법이라는 키워드를 얻었습니다. 3진법 10진수 124나라의 숫자 1 1 1 2 2 2 10 3 4 12 4 11 20 5 12 21 6 14 22 7 21 100 8 22 101 9 24 실제 문제풀이에서는 10진수 기준으로 13까지 적어봤으며, '4'를 '3'으로 바꿔보기도 했습니다. 그러던 도중 3진법에서 0이 등장할 때 124나라의 숫자에는 4가 등장하고, 숫자가 묘하게 바뀜을 알 ..
programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 문제에서 요구하는 것을 구현하는 문제입니다. def solution(numbers, hand): answer = '' lHand = '*' rHand = '#' key_pos = {1:(0,0), 2:(0,1), 3:(0,2), 4:(1,0), 5:(1,1), 6:(..
programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 스테이지별 실패율을 구해서 스테이지를 실패율이 높은 순서대로 반환하는 문제입니다. 실패율은 문제에서 정의해 줬습니다. 실패율 = 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 그리고 주의깊게 봐야 할 제한사항입니다. 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0 으로 정의한다. def solution(N, stag..