목록분류 전체보기 (163)
Simple&Natural
풀이과정) 그냥 느낌 가는대로 사고의 흐름따라 풀었다. 문자열을 원소의 갯수 순서대로 정렬한 후 1개부터 n개까지 비교하면서 어떤 원소가 추가되었는지를 확인한 후 해당 원소를 추가해주는 방식이었다. 하지만 다른 풀이를 보니 매우 효율적인 풀이들이 많았다. 우선 해당 문자열을 모두 해체하여 각 원소들의 갯수를 센다. ex) 1-5개, 2-4개, 3-3개 ... 그 후 갯수에 따라 오름차순으로 정리한 뒤 각 갯수에 해당하는 수를 순서대로 넣어주면 원하는 튜플이 된다. 풀이는 기억나는데 코드를 분실해서 생략...
코틀린 코드 사이에서는 SAM 인터페이스 변환을 지원하지 않는다. 기존의 자바코드의 경우 view.setOnClickListener { //TODO } 와 같은 형태를 지원하는데 이는 OnClickListener와 setOnClickListener가 모두 Java로 구현이 되어있기에 가능하다. OnClickListener만 Java로 구현되었고 setOnClickListener는 Kotlin으로 구현되어 있다면 view.setOnClickListener(OnClickListener { //TODO }) 와 같은 형태로 구현되어진다. 안에 있는 OnClickListener를 밖으로 빼낼 수 없다. 만약 두 코드가 모두 Kotlin으로 구현되어진 상태라면 익명객체인 object를 이용해야 한다. 함수형 패러..
EUC-KR로 인코딩된 웹문서를 안드로이드 앱으로 불러오면 종종 글자가 깨져보이는 경우가 발생하는데 이때 받아오는 inputStream에 charset 인코딩 타입을 지정해주어야 한다. val response = httpRequest(mClient, newsUrl) val inputStream = response?.body?.byteStream() //임시코드, null 예외처리를 이렇게 겹쳐 쓰는 건 지양해야 함 val inputStringReader = InputStreamReader(inputStream, "euc-kr") 블로그를 돌아다니다 보면 다 웹문서를 올바르게 표시하고 싶어하는 질문들에 대해 이상한 답변이 달려있는 경우가 많은데... 예를 들면 String(word.toByteArray("..
어떤 분이 질문을 하는 바람에 답변을 하는 겸 풀었던 행렬의 곱셈 관련 문제이다. 2차원 행렬의 곱셈은 기본적으로 m x n 행렬과 n x r 행렬의 곱인 경우에만 계산이 가능하다. 행렬을 2차원 배열로 만들고 앞 행렬의 행(M)과 뒤에 곱해지는 행렬의 열(R)을 각각 곱하고 합하면(N) 된다. 언어: Kotlin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 fun main() { for (arr in solution("2 3 2", "100 0 1 2 3 4", "50 60 70 75 8 9")) { println() for (num in arr) { print("$num ") } } }..