분류 전체보기
-
CharArray, Zip, Map, Array, CollectionAndroid 2024. 3. 8. 23:33
예외를 처리하는 방법에는 try~catch~finally 문과 throw 문이 있는데, throw 문은 문법적으로 틀리지 않더라도 사용자가 지정한 범위를 넘어가면 예외를 처리할 수 있다. if(n !in 1..10000) throw IllegalArgumentException("1부터 10000 사이의 수를 입력하세요!") catch(e:Exception) {..} 0 % 2 = 0 CharArray CharArray의 Char 은 Java의 char 과 대응되고, Array 의 Char 은 Java 의 Character와 대응된다. public class CharArray(size:Int)CharArray 생성자를 사용해 초기값을 설정하지 않고 초기화하는 방식으로, 크기만 넘기면 된다. 이때, 기본값은..
-
접근 제한자,지연 초기화, 널 세이프티Android 2024. 3. 7. 23:42
알고리즘 29번 arr = [1,2,3] 인데 ArrayList 일 경우에는 println(arr) 에 대하여 [1,2,3] 이 출력되지만, IntArray 일 경우에는 println(arr) 을 했을 때 [1,2,3] 이 출력되지 않고 해시코드가 출력된다. 원소 값을 출력하려면 for문을 이용해야 한다. IntArray 배열 arr 에 대하여 값을 넣을때는 arr += 3 이런 식으로 쓸 수 있지만, 원소 값을 제거할 때는 arr -= 3 으로 쓸 수 없다. arr.filter{it!=arr.minOrNull()}.toIntArray() // arr.filter{it!=arr.minOrNull()} → ArrayList 형태 arr.filter{it!=arr.minOf{it}}.toIntArray() ..
-
생성자, 상속, 인터페이스, 오버라이딩, 오버로딩Android 2024. 3. 6. 23:46
09:00 ~ 11:00 : 알고리즘 27번, 28번 풀기 27번 문제 arr : String = "12345" 라고 할 때, arr[0] 값을 가져올 수는 있지만 arr[0] 값을 바꿀 수는 없었다 (처음 풀 때 이렇게 풀었는데 오류남!) 해결 방안 : String 을 .toCharArray() 함수를 활용하여 배열로 바꾼 후에 인덱스로 접근하여 배열의 값을 바꿔야 했다. 또한, 이후 배열을 String() 함수를 이용해 다시 문자열로 바꾸어야 한다! String 에 대한 함수로는 lastIndex 함수와 slice 함수가 있다. lastIndex 함수는 마지막 문자의 인덱스 값을 가져오고, slice 함수는 arr.slice(3..5) 이런 식으로 쓰여 인덱스 3 ~ 인덱스 5 값을 반환한다. → 두..
-
fold / foldIndexed 함수, 자료형 정리, 증감연산자Android 2024. 3. 5. 23:51
9:00 ~ 10:00 : 알고리즘 문제 풀기 해당 알고리즘 문제는 absolutes = [4, 7, 12] 이고 signs = [ true, false, false ] 이면 4 + (-7) + (-12) 를 리턴하는 함수를 작성하는 것이다. 여기서 가장 사용하기 좋은 함수는 foldIndexed() 였다. fold(초기값 Int) val res = absolues.fold(0) { sum, element → sum + element } // res = 23 * sum 은 fold의 인자인 초기값 0 이고, element 는 배열의 원소이다. * sum = 0 + 4 + 7 + 12 = 23 → 즉, sum에 element 값이 합해지는 구조이다. foldIndexed(초기값 Int) val res = ..
-
2024-03-04 BOOTCAMP TILAndroid 2024. 3. 4. 23:44
온보딩 주차 강의 내용이 끝나고 나서 따로 강의 내용을 다시 복습하진 않고 계속 알고리즘 문제를 풀었다. 지금까지 25번까지 풀었고 오늘은 50번째 제출일이니까 부지런히 진도를 따라 잡을려면 하루에 2~3문제는 푸는게 좋을 것 같다. 확실하게 느꼈던건 하루에 막 많이 푼다고 그만큼 실력이 늘어나는 느낌은 아니었다. 내가 알고있는 개념을 이용해서 푸는 경우가 많았고 다른 사람들의 풀이도 참고했지만 하루동안 시간을 많이 할애해서 그런지 뒤돌아보면 금방 잊어버렸다. 결론 → 하루에 2~3문제 풀면 진도를 따라잡을 수 있으니 한 문제 하나를 다양한 방법으로, 다른 사람들이 어떻게 풀었는지 정리해가면서 푸는 습관을 들이도록 해야겠다! 다음은 알고리즘 문제를 풀면서 느낀 점이나 정리해야 할 점들이다. arr.for..
-
2024/02/29 BOOTCAMP TILAndroid 2024. 2. 29. 23:15
오전 일과 9:30~11:00 알고리즘 5번(숫자 비교하기) class Solution { fun solution(num1: Int, num2: Int): Int { var answer: Int = 0 if(num1 in 0..10000 && num2 in 0..10000) { if(num1==num2) { answer=1 } else { answer=-1 } } return answer } } → 첫번째 if 문은 num1, num2에 대한 숫자 범위 조건을 걸어주는 것이고, 조건을 만족했을 때 num1과 num2가 같으면 1, 다다르면 -1 을 반환한다. 만약, 숫자 범위를 넘어갈 경우 값 0 을 반환한다! 다른 사람 풀이이에서는 answer = if(num1==num2) 1 else -1 해당 형태..
-
2024/02/28 BOOTCAMP TILAndroid 2024. 2. 28. 23:50
오늘이 세번째 TIL 작성이다! 아직 공부방법도 많이 미숙하지만, TIL을 더 체계적으로 꾸준히 작성할 수 있도록 노력해야겠다 :) 오전에는 알고리즘 2번~4번 풀면서 다른 사람들이 푼 방법을 확인하여 코드를 따라쳐보았다. 알고리즘 2번) fun solution(num1: Int, num2: Int): Int { var answer: Int = 0 if((num1>=0 && num1=0 && num2 한 단계 위(세부적으로 들어가는게 아니라 더 큰 폴더로 들어감)의 폴더로 이동하는 명령어 ~ : home directory 4.2 cd 폴더명/폴더명 -> 폴더명으로 들어갈 수 있음 5. mkdir 폴더명 (make directory) -> 폴더를 만드는 명령어 ex) mkdir test 6. touch 파..