전체 글

공부, 일상
프로그래머스

배열 자르기 코틀린(Kotlin)

이번 문제는 제목 그대로 배열을 자르는 문제이다. 요즘 코틀린에 너무 익숙해져서 자바로는 어떻게 풀어볼지 고민이다. 문제 풀이들 풀이 1) 문제에서 기본적으로 answer 변수를 IntArray형으로 주었기 때문에 이에 맞춰 생각하다 보니 배열의 사이즈를 정해 빈 배열을 만들고 반복문을 통해 하나씩 값을 넣어주기로 했다. - 이 경우, for문을 통해 주어진 numbers의 값을 answer 배열에 하나씩 넣어준다. 실행 결과는 이렇다. 보면 기가 막히게 실행 속도가 빠르다. 풀이 2) 찾아보니 Array의 메소드 중 copyOfRange()라는 메소드를 사용하면 원본 배열을 변경하지 않고 지정한 범위의 배열을 리턴해준다고 한다. answer 변수의 타입도 선언하지 않고 작성해보았다. 실행 결과는 이렇다..

프로그래머스

점의 위치 구하기 코틀린(Kotlin)

오늘은 정말 오랜만에 프로그래머스에 들렀다. 새로운 문제가 나와서 풀어보았다. 문제 한 문장으로 문제를 표현하면 좌표가 어느 사분면에 있는지 숫자로 리턴하는 문제이다. 조건문을 어떻게 하면 짧게 쓸 수 있을까 고민해보았다. 사분면마다 x와 y값의 양수 음수 여부를 판단해 리턴하는 것은 코드가 매우 길어질 것 같았다. 그래서 일단 x와 y값을 곱한 값이 양수인지 판단해 크게 1, 3분면과 2, 4분면으로 나눴다. 그 다음, x좌표의 부호(양수인지 음수인지)에 따라 사분면을 구분했다. 풀이

Android

Codelab으로 LiveData 알아보기 - 3. Encapsulate the LiveData

캡슐화는 객체의 필드에 직접 접근을 막는 방법이다. 우리가 객체를 캡슐화할 때 private인 내부 필드를 수정할 수 있도록 public 메소드들을 제공해야 한다. 캡슐화를 사용하면 다른 클래스가 이 내부 필드를 어떻게 조작할지 제어할 수 있다. 현재, 우리가 수정한 코드에서 viewModel.score.value를 사용하듯 모든 외부 클래스에서 score와 word 변수를 수정할 수 있다. 우리가 지금 만드는 이 앱에서는 문제가 없을 수 있지만, 출시용 앱에서는 ViewModel 객체의 데이터를 조작해야한다. 오직 ViewModel이 앱의 데이터를 수정해야한다. 하지만, UI controller가 데이터를 읽을 필요가 있고, 그래서 데이터 필드는 완벽한 private이 될 수 없다. 앱의 데이터를 캡슐..

BonusTrack02.dev
BonusTrack02.dev