본문 바로가기

개발90

TIL: 안드로이드 스튜디오 TableLayout, 프로젝트 생성 시 빨간 글씨 TableLayout //행 //열 //열 //행 //열 //열 계산기를 만들려다가 LinearLayout 보다는 TableLayout이 더 적당한 거 같아서 바꿨다. 말 그대로 표처럼 레이아웃을 짜고 싶을 때 쓰면 좋을 거 같다. android:layout_weight="1" weight는 50dp, 100dp 이렇게 딱 떨어지는 값이 아니라 비율로 화면을 분활하고 싶을 때 사용한다. weight의 총합이 10일 때 1은 10분의 1만큼 차지한다. 상대적인 값이다. 프로젝트 생성 시 빨간 글씨 new로 생성했는데 파일 전체가 빨간 글씨가 떴다. 분명 문법오류 없는데... 왜 그런가 했더니 git에 등록된 폴더에서 생성했기 때문에 그런거였다. 구글링해서 해결방법을 찾아봤지만 나한테 적용가능한 해결법은 없.. 2023. 11. 28.
TIL: Kotlin컨벤션 Kotlin 컨벤션 언어에 맞춤법이 있듯이 코드를 치는데도 맞춤법 비스무리한 게 있다. 이렇게 쓰자하고 합의한 것들. 이렇게 안해도 작동은 하지만 내가 아닌 다른 사람들이 볼 때 매우매우 불편하므로 지켜주는 게 좋다. 예를 들자면 "이렇게붙여써도뜻은문제가없지만읽을때매우불편하다" 와 "이렇게 붙여 써도 뜻은 문제가 없지만 읽을 때 매우불편하다" 중에 어떤 것이 더 읽기 편한가? 그러니 되도록 가이드에 맞게 쓰는 게 좋다. 소스파일 UTF-8 인코딩 이클립스를 처음 깔고 파일을 열었을 때 외계어가 나왔던 기억이 난다... 표준으로 맞춰준다. 이름 지정 // MyClass.kt class MyClass { } // Bar.kt class Bar { } fun Runnable.toBar(): Bar = // ….. 2023. 11. 27.
코틀린 1.repeat() 2.count() 3.함수 안될 때 .repeat() /** * Executes the given function [action] specified number of [times]. * * A zero-based index of current iteration is passed as a parameter to [action]. * * @sample samples.misc.ControlFlow.repeat */ @kotlin.internal.InlineOnly public inline fun repeat(times: Int, action: (Int) -> Unit) { contract { callsInPlace(action) } for (index in 0 until times) { action(index) } } 사용 예시 // greet.. 2023. 11. 24.
프로그래머스: 옹알이 (2) class Solution { fun solution(babbling: Array): Int { var answer: Int = 0 val pos = arrayOf( "aya", "ye", "woo", "ma") val pos2 = arrayOf( "ayaaya", "yeye", "woowoo", "mama") for(str in babbling){ var word = str for(i in pos.indices){ if(word.contains(pos2[i])){ continue }else if(word.contains(pos[i])){ word=word.replace(pos[i],"|") }else{ continue } } word=word.replace("|","") if(word == ""){ a.. 2023. 11. 23.
프로그래머스: 기사단원의 무기 import kotlin.math.sqrt class Solution { fun findDivisor (n:Int): Int{ var answer:Int = 0 var array=intArrayOf() var sqrtNum = sqrt(n.toDouble()).toInt() for (i in 1 .. sqrtNum ){ if(n%i==0){ array+=i if(n/i != i) array+=n/i } } answer=array.size return answer } fun solution(number: Int, limit: Int, power: Int): Int { var array= intArrayOf() for(n in 1 .. number){ if(findDivisor(n) 2023. 11. 22.
maxOrNull, minOrNull. Kotlin 분명 블로그 같은데서 min(),max()를 하면 된다고 했는데 안먹혀서 찾아보니 minOrNull() maxOrNull() 이라고 치니 작동한다. 코틀린 14.0부터 바뀌었다고 한다. 빈 리스트에서 사용시 null을 반환한다. 2023. 11. 21.
20231120 프로그래머스 명예의전당, 2016년 코틀린 내 코드는 성능이 좋다고는 자신할 수 없다. 일단 배우는 입장으로써 원하는 값이 나오는가에 중점을 두고 작성한다. 다른 사람들의 풀이를 보면 인라인으로 잘만 돌리는데 필자는 그렇게 하려면 헷갈린다. 내부에서 어떻게 돌아가는지 파악하기가 힘들기 때문에. class Solution { fun solution(k: Int, score: IntArray): IntArray { var answer: IntArray = intArrayOf() var list = mutableListOf() for(i in score.indices){ list.add(score[i]) list=list.sortedDescending().take(k).toMutableList() answer+=list.minOf { it } } re.. 2023. 11. 20.
코틀린(kotlin) 정리 변수 선언 방법 var 변수명 = 값 //일반적인 선언 var 변수명: Int //선언만 했을 때 자료형을 명시해주어야함 특이한 것이 자바는 Int 변수명... 이런 식으로 하는데 코틀린에서는 : Int 이런 식으로 자료형을 명시해주어야한다. 자바를 약간 배워본 입장에서는 자바스크립트+자바가 섞인 거 같은 느낌을 받았다. 일단 자료형이 뭔지 알 수 있어서 여기에 어떤 값이 들어가는거지?하고 헷갈리는 일은 없을 듯 하다. Float 값을 쓸 때 var 숫자: Float 숫자 = 123.456F // Double과 Float를 구분하기 위해 숫자 뒤에 F를 붙여준다. Int 값을 쓸 때 var 숫자 = 1123132 var 숫자2 = 123_456_789 // 이렇게 중간에 _를 써도 위에 값이랑 똑같이 읽.. 2023. 10. 30.
스프링 local에서 오라클 전자지갑 경로 예~~전에 만들어뒀던 오라클 클라우드 데이터베이스를 쓸려는데 생각처럼 되지 않았다. 예전 기억을 더듬으며 구글을 이용해 문제를 찾았는데.... 문제를 이상한데서 찾고 있었다. 이래서 애매한 기억이 더 무섭다. 다음엔 이런 일이 없도록 적어놓겠다. 프로젝트 소스코드 일부... HikariCP Configuration 해결방법 jdbcUrl의 value 에는 jdbc....thin:@DB이름_high?TNS_ADMIN= 전자지갑 주소 . 전자지갑 주소에는 압축파일에 대한 경로가 아니라 압축해제한 wallet 파일 경로를 적어야 한다. 저 경로 안에 ora파일이 있어야한다. 아래는 DB이름 확인하는 방법. Database name: Dbtransaction123 2023. 5. 13.