일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 큐 자바 코드
- 안드로이드 레트로핏 사용법
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 유닛 테스트
- 안드로이드 유닛테스트란
- 2022 플러터 설치
- 클래스
- 스택 자바 코드
- 안드로이드 라이선스 종류
- android ar 개발
- rxjava cold observable
- ANR이란
- 서비스 vs 쓰레드
- 서비스 쓰레드 차이
- 멤버변수
- rxjava hot observable
- android retrofit login
- 자바 다형성
- jvm이란
- 객체
- 스택 큐 차이
- rxjava disposable
- 안드로이드 os 구조
- 안드로이드 유닛 테스트 예시
- 안드로이드 레트로핏 crud
- ar vr 차이
- jvm 작동 원리
- 플러터 설치 2022
- Rxjava Observable
- 안드로이드 라이선스
- Today
- Total
목록2024/07 (33)
나만을 위한 블로그

시간과 분이 입력으로 주어지면 그 시간에서 45분 이전의 시간을 구해야 한다.우리가 시간을 계산할 때 어떻게 계산하는지를 생각해 본다. 10시 10분에서 45분 이전의 시간이 뭔지 질문받으면 분침을 뒤로 돌리는 상상을 하는 대신, 어떤 순서로 시간을 계산할까?먼저 10에서 45를 뺀다. 그러면 -35라는 음수가 나오는데, 음수인 시간은 존재하지 않기 때문에 앞에 있는 시간에서 60분을 가져온다.즉 10에서 1시간(60분)을 가져와서 -35에 더해 분을 구한다. 시간은 10 - 1 = 9가 되고, 결과적으로 9시 25분이라는 시간을 얻는다.그리고 2번째 입출력 예시를 보면 입력이 0시 30분인 경우 출력이 23시 45분이라 이 예외처리도 해야 한다. fun main() { var (hour, min)..
안드로이드 스튜디오 코알라에서 프로젝트를 기본 설정으로 생성하면 libs.versions.toml이란 파일이 생기는 걸 볼 수 있다.이 파일을 실행하면 편집기에 아래 내용이 표시된다. [versions]agp = "8.5.0"kotlin = "1.9.0"coreKtx = "1.13.1"junit = "4.13.2"junitVersion = "1.2.1"espressoCore = "3.6.1"lifecycleRuntimeKtx = "2.8.3"activityCompose = "1.9.0"composeBom = "2024.04.01"jetbrainsKotlinJvm = "1.9.0"appcompat = "1.7.0"material = "1.12.0"hilt = "2.48.1"orbit = "6.1.0"dat..

조건에 맞춰서 합을 구한 다음 리턴하면 된다. class Solution { fun solution(board: Array, k: Int): Int { var sum = 0 for (i in board.indices) { for (j in board[i].indices) { if (i + j

2차원 정수 배열 arr이 매개변수로 주어진다. arr의 행 수가 더 많으면 열 수가 행 수와 같아지게 각 행의 끝에 0을 추가하고, 열의 수가 더 많으면 행 수가 열 수와 같아지도록 각 열의 끝에 0을 추가한 2차원 배열을 리턴하는 함수를 완성하라 class Solution { fun solution(arr: Array): Array { val rows = arr.size val cols = arr[0].size if (rows > cols) { for (i in 0 until rows) { arr[i] = arr[i] + IntArray(rows - cols) } } else i..

2차원 배열에서 [i][j]와 [j][i]가 같으면 1, 아니면 0을 리턴하게 하면 된다. class Solution { fun solution(arr: Array): Int { val n = arr.size for (i in 0 until n) { for (j in 0 until n) { if (arr[i][j] != arr[j][i]) { return 0 } } } return 1 }}

양의 정수 n이 매개변수로 주어진다. n x n 배열에 1부터 n^2까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 2차원 배열을 리턴하는 함수를 작성하라 class Solution { fun solution(n: Int): Array { val result = Array(n) { IntArray(n) } var value = 1 var x = 0 var y = 0 var direction = 0 val dx = arrayOf(0, 1, 0, -1) val dy = arrayOf(1, 0, -1, 0) while (value

지금까지 app 모듈 안에 data, domain, presentation 폴더를 만들고 그 안에서 작업해 온 사람도 있을 것이다.그러나 이렇게 하면 삐끗하면 클린 아키텍처를 어길 수 있으니, 실제로 저 이름을 가진 모듈들을 만드는 방법을 포스팅한다.또한 이 방법이 절대 정답은 아니다. 본인이 설계한 앱에 맞춰 core 모듈을 추가할 수도 있다. 여러 레퍼런스를 찾아보고 필요한 모듈들을 알맞게 추가해 사용하자. 이 포스팅에선 앞서 말한대로 data, domain, presentation 모듈을 만들고 앱을 실행하는 것까지만 확인한다. 안드로이드 디벨로퍼에서 권장하는 앱 아키텍처가 저 3가지 모듈을 바탕으로 하기 때문인 것도 있다. 아래는 사용하는 안드로이드 스튜디오 버전이다. 먼저 File > New..

2차원 배열을 생성하되 i와 j가 모두 일치하는 경우, 즉 [0][0]과 [1][1] 같이 두 인덱스가 일치하는 지점의 값은 1로 채우고 아니면 0으로 채워야 한다.코틀린에서 2차원 배열을 초기화하는 방법만 알면 풀 수 있다. class Solution { fun solution(n: Int) = Array(n) { i -> IntArray(n) { j -> if (i == j) 1 else 0 } }}

알파벳 소문자로 이뤄진 문자열 myString이 주어진다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 리턴하는 함수를 완성하라 소문자의 순서를 구분하는 방법 중 하나는 해당 소문자의 아스키 코드를 사용해서 매개변수로 받은 문자열들의 각 문자들을 확인하는 것이다. class Solution { fun solution(myString: String): String = myString.map { if (it.code 마지막에 joinToString("")을 써서 문자 사이에 공백이 없는 문자열로 만들어야 제출 시 런타임 에러로 실패하지 않는다.

정수 배열 arr, 자연수 k가 주어진다. k가 홀수면 arr의 모든 원소에 k를 곱하고, 짝수면 arr의 모든 원소에 k를 더한다. 이런 변환을 마친 후의 arr을 리턴하는 함수를 완성하라 매개변수로 받은 arr 안의 값은 직접 수정할 수 없다. 그래서 copyOf()로 arr을 복사한 다음 반복문과 홀짝 구분 로직을 섞어서 풀면 된다. class Solution { fun solution(arr: IntArray, k: Int): IntArray { val answer: IntArray = arr.copyOf() for (i in answer.indices) { if (k % 2 == 0) { answer[i] = answ..