문제 문제 출처 https://programmers.co.kr/learn/courses/30/lessons/81302 문제 설명 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군 면접인 만큼 아래와 같은 규칙으로 대기실에 거리를 두고 앉도록 안내하고 있습니다. 대기실은 5개이며, 각 대기실은 5x5 크기입니다. 거리두기를 위하여 응시자들 끼리는 맨해튼 거리1가 2 이하로 앉지 말아 주세요. 단 응시자가 앉아있는 자리 사이가 파티션으로 막혀 있을 경우에는 허용합니다. 예를 들어, 위 그림처럼 자리 사이에 파티션이 존재한다면 맨해튼 거리가 2여도 거리두기를 지킨 것입니다. 위 그림처럼 파티션을 사이에 두고 앉은 경..
문제 문제 출처 https://programmers.co.kr/learn/courses/30/lessons/64065 문제 설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..
MVVM 패턴의 ViewModel과 AAC의 ViewModel이 어떻게 다른지 알아보자. 1. MVVM 패턴의 ViewModel Model, View, ViewModel로 이루어진 MVVM 패턴에서 View에 연결할 데이터와 명령으로 구성되어 있으며 변경 알림을 통해 View에게 상태 변화를 전달하는 역할을 한다. ViewModel은 Model은 알지만 View는 알지 못한다. 이 ViewModel을 구현하는데 AAC의 ViewModel이 사용하는 것이 좋다. 2. AAC의 ViewModel ViewModel은 액티비티를 재생성할 때 UI 관련 데이터를 유지하기 위해 사용한다. ViewModel 클래스를 사용하면 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있다. 액티비티가 완전히 종료될 때..
앞서 살펴본 MVVM 패턴([Android] 아키텍처 패턴 - MVC, MVP, MVVM 글 참고)을 안드로이드 앱에 구현하기 위해 사용하는 Android Jetpack의 컴포넌트 중 하나인 LiveData에 대해 알아보자. 라이브 데이터란? 라이브 데이터는 데이터의 변경을 관찰할 수 있는 data holder 클래스로 activity, fragment, service 등 다른 컴포넌트의 생명주기를 인식해서 active 상태(STARTED, RESUMED)일 때만 데이터를 업데이트한다. MVVM 패턴에서 View가 ViewModel을 관찰할 때 그 관찰 대상이 되는 데이터 홀더 클래스이다. 🔍 Observer Pattern 라이브 데이터는 데이터의 변경을 어떻게 관찰하고 알리는 것일까? 라이브 데이터와 ..
발생한 문제 마지막으로 실행했을 때 이후로 코드를 수정한 부분이 전혀 없는데 갑자기 다음과 같은 오류가 발생했다. /Users/user/.gradle/caches/transforms-2/files-2.1/4fa6e55d833d1d339902e36b265b6c73/core-1.7.0-alpha02/res/values/values.xml:105:5-114:25: AAPT: error: resource android:attr/lStar not found. 해결방법 라이브러리의 버전을 명시하지 않고 +로 두는 경우 항상 최신버전으로 컴파일하게 되는데, androidx.core:core-ktx의 최신버전이 최소 SDK 31을 필요로 하기 때문에 위와 같은 충돌이 일어난다. 따라서 다음 두 가지의 해결방법이 있다...
문제 유진이가 즐겨하는 디제이맥스 게임은 각각의 노래마다 랭킹 리스트가 있다. 이것은 매번 게임할 때 마다 얻는 점수가 비오름차순으로 저장되어 있는 것이다. 이 랭킹 리스트의 등수는 보통 위에서부터 몇 번째 있는 점수인지로 결정한다. 하지만, 같은 점수가 있을 때는 그러한 점수의 등수 중에 가장 작은 등수가 된다. 예를 들어 랭킹 리스트가 100, 90, 90, 80일 때 각각의 등수는 1, 2, 2, 4등이 된다 랭킹 리스트에 올라 갈 수 있는 점수의 개수 P가 주어진다. 그리고 리스트에 있는 점수 N개가 비오름차순으로 주어지고, 송유진의 새로운 점수가 주어진다. 이때, 송유진의 새로운 점수가 랭킹 리스트에서 몇 등 하는지 구하는 프로그램을 작성하시오. 만약 점수가 랭킹 리스트에 올라갈 수 없을 정도로..
이 책은 자바 언어와 자바 기반 라이브러러를 효과적으로 사용하도록 하기 위한 책이다. 이 책은 성능에 집중하는 대신 프로그램을 명확하고, 정확하고, 유용하고, 견고하고, 유연하고, 관리하기 쉽게 짜는 데 집중한다. 📝 2판 출간 이후 자바 플랫폼에 추가된 신기능을 밀도 있게 다룬 아이템 리스트 기능 아이템 번호 도입된 자바 버전 람다 42~44 자바 8 스트림 45~48 자바 8 옵셔널 55 자바 8 인터페이스의 디폴트 메서드 21 자바 8 try-with-resources 9 자바 7 @SafeVarargs 32 자바 7 모듈 15 자바 9 ✅ 이 책의 규칙 대부분은 아주 핵심적이 기본 원칙 명료성(clarity)과 단순성(simplicity)에서 파생된다. 이 책에서 컴포넌트란 개별 메서드부터 여러 ..
안드로이드 앱 개발을 공부하면서 자주 접하게 되는 아키텍처 패턴인 MVC, MVP, MVVM 패턴에 대해 알아보자. (아키텍처 패턴의 개념을 잘 모른다면 [Android] 디자인 패턴, 아키텍처 패턴 이 글 참고) 1. MVC MVC 패턴은 Model, View, Controller로 구성되어 있다. Model(모델): 어플리케이션의 데이터를 저장하는 역할을 담당한다. SQLite, File, content provider가 이 영역에 속한다. View(뷰): 화면 구성을 담당하는 영역이다. 이 영역은 View 클래스를 상속하는 클래스를 사용해서 구성할 수 있다. Controller(컨트롤러): View와 Model을 서로 연결하고 제어하는 영역이다. 이 영역에는 activity, service, bro..
- Total
- Today
- Yesterday
- 우선순위큐
- Android
- MutableLiveData
- 안드로이드
- programmers
- Kotlin
- 라이브 데이터
- 변수
- 백준
- 자바
- architectural pattern
- Algorithm
- androidx.core
- gradle
- 알고리즘
- heap
- hilt
- viewmodel
- 코틀린
- livedata
- 프로그래머스
- SCPC2021
- 후기
- 힙
- BAEKJOON ONLINE JUDGE
- Naver AI Burning Day
- 아키텍처 패턴
- error
- 뷰모델
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |