1. 알고리즘 문제 해결
DSLR(백준 9019):
BFS를 이용한다는 것과 로직은 이전 문제들과 흡사하다. 처음에는 큐에 현재까지의 명령어 문자열도 함께 담기도록 했는데, 시간 초과가 났다. 아무래도 문자열의 복사가 반복되다보니, 명령어가 길어질수록 문제가 생길 수 있을 것 같았다. 그래서 그냥 큐에서는 명령어 문자열 대신 직전 값과 직전 명령어가 담기게 했고, 방문 배열에 이를 기록할 수 있도록 했다.
이후 원하는 값에 도달했을 때, 방문 배열을 통해 다시 처음의 값까지 역추적 해서 출력하도록 했고 시간 초과가 나지 않고 통과했다.
2. 안드로이드 공부
구현하려고 하던 뮤직 플레이어 앱에 대해 어느정도 가닥을 잡은 것 같다. ViewModel 내에 있던 Player는 Service 쪽으로 옮겨버렸고, MediaSession 및 MediaController를 이용해 ViewModel에서 이용할 수 있도록 했다. Service는 당연히 Foreground Service로 실행 해, Notification으로 플레이어 관리 및 앱의 수명주기에 영향을 받지 않도록 했다.
메인이 되는 플레이어 Fragment와 가사 상세 Fragment를 구현해야 하고, 플레이어는 어느 Fragment가 그려져있든 항상 필요해서, 기본적인 기능들에 대한 로직들도 거의 ViewModel로 들어가고 있다. 그러다보니 ViewModel의 몸집이 너무 커지는 거 같아서 View에 필요한 데이터들은 되도록 BindingAdapter를 이용하는 쪽으로 빼고 있는데, 일단 전반적으로 코드를 완성한 뒤에 한 번 더 손봐야 할 것 같다. 그리고 에러 핸들링이나 흐름제어도 아직 러프하게 해놔서, 이것도 얼추 완성되고 나면 섬세하게 처리해줘야 할 것 같다.
'내일배움캠프 안드로이드 3기' 카테고리의 다른 글
[TIL] 24.02.15 (0) | 2024.02.16 |
---|---|
[TIL] 24.02.13 (1) | 2024.02.14 |
[TIL] 24.02.07 (0) | 2024.02.07 |
[TIL] 24.02.06 (1) | 2024.02.06 |
[TIL] 24.02.05 (0) | 2024.02.05 |