TIL (Today I Learned)

99클럽 코테 스터디 10일차 TIL + 오늘의 학습 키워드

남 희 2024. 8. 1. 02:06

오늘 문제의 키워드: 우선순위 큐

우선순위 큐를 잘 쓸 줄 알아야 하고,

String 구현을 잘 해야 빠르게 풀 수 있다.

 

다음에 다시 한 번 더 풀어보자.

 

문제 접하고 나서...

앞으로 String을 사용한 구현 문제를 매일 한 문제씩 풀어봐야겠다.

아, 그리고 Kotlin 연습도 잊지 말 것.

 

더보기

주저리

문제를 읽다 보니 내가 모르는 지식이 내 설계를 방해하는 기분이 들어서, 다른 사람들의 풀이를 읽어보았다.

아니나 다를까 설계는 내가 생각한 대로였고 내가 내장 함수를 잘 몰라서 생기는 거였다.
아, 다음에 이렇게 함수를 모르는 일이 생기면 Java 공식 문서에서 해결해 봐야겠다.

 

☑️ 복습

Java

  • PriorityQueue의 default는 최솟값이 최상단에 있는 것이다. 최댓값을 최상단으로 하고자 한다면 별도의 작업이 필요하다.
PriorityQueue<Integer> minPriorityQ = new PriorityQueue<>();
PriorityQueue<Integer> maxPriorityQ = new PriorityQueue<>(Collections.reverseOrder());

 

 

Android

  • BoxWithConstraints를 사용하니 비율로 여백을 줄 수 있었다.
  • dp = pixel / density(기본 160dpi / 단말 dpi)
  • Jetpack Compose에서 viewModel이 인자로 있다면, Preview가 보이지 않는다.
  • 그렇기 때문에, viewModel을 인자로 받는 composable 함수와 그 함수 내에 viewModel의 변수와 viewModel 함수를 인자로 넣는 composable 함수를 작성해야 한다.
  • 그렇게 작업해준 다음에 Preview 함수 인자에는 viewModel과 관련된 코드가 없어야 한다. (근데 히스토리를 모르는 인자에 값 넣어주는 것도 쉽지는 않더라. 특히 인자가 복잡한 객체라면....)
  • 만약 viewModel의 함수를 인자로 사용해야 한다면, 아래와 같이 코드를 작성하면 된다.
onClick1 = viewModel::function1() // () -> Unit
onClick2 = { param1 -> viewModel.function2(param1) } // (param 타입) -> Unit