300x250
반응형

전체 글 40

[Android : Kotlin] 안드로이드 버튼 background drawable(shape) 적용 안되는 이유

🐱‍🏍 Android Button background drawable 적용이 되지 않을 때 대처 방법 Android Button Customizing을 하기 위하여 drawable 폴더에 shape를 만들고, Button 태그에서 background에 적용시켜줄 때 적용이 되지 않고 default button 모양이 그대로 보여질 때가 있다. 이 경우에 어떻게 대처해야 하는지를 다루었다. shape를 아래 코드와 같이 만들어 주었다. 위와 같은 모양을 나타내기 위해 shape 코드를 작성 해 주었고, 아래와 같이 Button에 적용 해 주었다. 그랬더니 처음 버튼을 추가하면 나오는 Default Button 이 나와버린다. 이런 경우, 을 또는 으로 바꿔주면 해결된다. 🐱‍🏍 적용이 되지 않았던 원인은 ..

[Android : Kotlin] 코틀린에서 문자열을 쪼개는 2가지 방법 (Split과 StringTokenizer의 차이)

🐱‍🏍 Android Call-Back Pattern 대부분의 언어는 아래와 같이 split() 함수를 통해서 문자열을 쪼갠다. ### Python3 StringVal = "대 한 민 국" print(StringVal.split(" ") #['대', '한', '민', '국'] 출력 print(StringVal.split(" ")[0]) # '대' 출력 print(StringVal.split(" ")[1]) # '한' 출력 print(StringVal.split(" ")[2]) # '민' 출력 print(StringVal.split(" ")[3]) # '국' 출력 그리고 자바에서는 split() 뿐만 아니라 StringTokenizer를 통해서도 쪼갤 수 있는데, 이것이 다행히도 코틀린에서도 가능하다. i..

[백준] 11021번 : A+B-7 - Kotlin [코틀린]

문제 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 알고리즘 테스트 케이스의 개수 T를 입력받는다. 다음 줄에서 각각의 정수 A와 B를 입력받는다. A와 B의 +연산을 하고, 각 테스트 케이스마다 출력 해 준다. 풀이 import java.io.* import java.util.* fun main() : Unit { val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStreamWriter(System.out)) var TC : Int = 1 repeat(br.readLine(..

[백준] 2741번 : N찍기 - Kotlin [코틀린]

문제 (2741번 : N 찍기 - Kotlin[코틀린]) 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 알고리즘 자연수 N을 입력받고, for 반복문을 이용하여 1부터 N까지 반복 출력한다. 단, 출력 한번당 한번의 개행이 있어야한다. 풀이 - 1번 풀이 (java.util.Scanner를 이용한 풀이) import java.util.* fun main() : Unit = with(Scanner(System.`in`)) { val N = nextInt() for(i in 1..N) println("${i}") } 대부분 단순히 위와 같은 풀이로 접근했을 것 같다. Scanner를 import 해준 뒤, N을 ne..

[Android : Kotlin] 안드로이드 콜백과 리스너에 대하여

🐱‍🏍 Android Call-Back Pattern 사전 정의) Callback : 답신 전화 (다시 전화), 회신, 재통보 등.. 그렇다면, Android에서 Callback의 의미는 무엇을 의미할까? Callback Method란, 다른 함수에 인수로 전달되는 함수이며, 일종의 이벤트 후에 실행 될 것으로 예상된다. 콜백 메소드의 목적은 다른 클래스에서 일부 작업이 완료된 경우 클래스 Sync/Async에 알리는 것이다. 이는 비동기 작업을 할 때 매우 유용하다. Button을 누르거나 인터넷에서 데이터를 가져온 후 일부 작업을 수행하거나, 컨텐츠를 표시하는 등의 일상적인 작업을 수행하려 한다고 가정한다. 콜백 기능을 통해 버튼을 누르면 알림을 받으므로 이벤트 처리에 사용된다. 이 유형의 디자인 패..

[백준] 15552번 : 빠른 A+B - Kotlin [코틀린]

문제 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 알고리즘 BufferedReader 와 BufferedWriter를 사용하여 각 입력 값들의 덧셈을 하여 출력한다. 풀이 먼저 여태까지의 모든 문제 풀이들은 비교적 사용이 간편한 Scanner와 단순한 println 을 사용했다. 그러나, 이런 풀이 방법은 내부적으로 많은 공정이 이루어지기 때문에 심각한 비효율적 검사가 발생하고, 당연히 처리 속도가 굉장히 느려진다. 그렇기 때문에 BufferedReader와 BufferedWriter를 사용하여 본 문제를 풀 수 있도록 의도..

[백준] 2480번 : 주사위 세개 - Kotlin [코틀린]

문제 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net 알고리즘 1. 같은 눈이 3개인 경우 연산 : 10000 + (같은 눈) * 1000 2. 같은 눈이 2개인 경우 연산 : 1000 + (같은 눈) * 100 3. 모든 눈이 다른 경우 연산 : (같은 눈) * 100 풀이 - 내가 작성한 코드 import java.util.Scanner import java.util.Random import java.util.Collections // import java.util.* fun main() =..

[2022.04.14] 앱 개발 기획하기

사실 오늘이 1일차는 아니지만, 뒤늦게 일기를 써본다. 한 유튜버분의 앱 개발을 할 때 사용하면 좋은 계획, 기획의 프로세스를 알려주셨는데 이 영상을 보고 나서 정말 놀랐다. 나는 여지껏 혼자서 공부하고, 혼자서 만들어보기만 했지 저렇게 더 깊게 파고들고 단계를 밟아가며 탄탄한 과정을 거쳐보진 못했었기 때문이었다. 그래서 영상을 보자마자 곧 바로 실행에 옮겼다. 1. 요구사항 정의 작성하기 (앱 개발 계획하기) 사실 형식은 그냥 구글링 해서 보고 따라 만들었다. 물론 이걸 작성하는게 크게 중요한 것은 아니지만, 앱을 기획하는 단계에서 초기에 앱의 주제를 정했다면 앱에 어떤 기능을 구체적으로 만들건지 단계를 정하는데 아주 큰 도움이 되었다. 당연히 머리가 좋은 사람은 이런걸 작성하지 않아도 알아서 척-척 ..

[백준] 2884번 : 알람 시계 - Kotlin [코틀린]

문제 알고리즘 1. 상근이가 설정한 알람시간을 45분 앞당겨 출력한다. 2. Scanner로부터 입력받은 Minute가 45보다 작으면 Hour - 1을 하고, Minute는 60-(45-minute)하여 계산하라. 3. Minute가 45보다 크다면 그대로 Minute-45를 한다. 4. Hour가 0보다 작다면 H=23하여 23시로 설정한다. 풀이 - 1번 방법 (가장 일반적인 방법) import java.util.* fun main() : Unit = with(Scanner(System.`in`)) { var H = nextInt() var M = nextInt() if(M

[백준] 2588번 : 곱셈 - Kotlin [코틀린]

2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 문제 알고리즘 (1)과 (2)의 곱셈을 진행하는 문제이고, (3), (4), (5)는 각각 (2)의 자릿수에 따른 곱셈 과정이다. (3)은 472*5의 과정이고, (4)는 472*5, (5)는 472*3의 과정이다. 1. 수학적으로 접근하여 각각의 자리수를 나누어 출력하고, 맨 마지막 결과는 (1)과 (2)의 곱셈을 출력하면 된다는 것이 가장 먼저 드는 단순한 방법인 것 같다. 2. (2)를 문자열로 받아서 JAVA에서의 charAt( )과 같이 한문자식 .toInt( ) 로 변환하여 (1)과 곱해서 출력하는 방법이 있는 것 같다. 풀이 - 1번 방법 import j..

728x90
반응형