2025/04/03 4

[Android] BottomSheetScaffold의 BottomSheet가 사용자 입력으로는 숨겨지지 않지만, 프로그래밍적으로는 숨겨질 수 있게 만들기

#1 문제 상황#1-1 사용자 입력으로 숨겨지지 않게 만들기val scaffoldState = rememberBottomSheetScaffoldState( bottomSheetState = rememberStandardBottomSheetState( skipHiddenState = true ))이러면 된다. 사실 skipHiddenState는 기본값이 true기에 그냥 val scaffoldState = rememberBottomSheetScaffoldState()만 써도 되긴 한다. 본 게시글의 코드는 기록의 의미가 강하므로, 그냥 명시적으로 밝혀 썼다. #1-2 문제점FilledTonalButton( onClick = { scope.launch { ..

[백준] 11659 (구간 합 구하기 4)

#1 알고리즘#1-1 동적 프로그래밍 동적 프로그래밍 (Dynamic Programming), 상향식(Bottom-up) 및 하향식(Top-down) 접근#1 알고리즘#1-1 정의동적 프로그래밍을 한 줄 요약하면 중복의 제거다. 정적(static)이라는 개념과 반대되는 개념으로서, 동적(dynamic)이라는 단어가 이름에 붙었다. 확실히 static이 붙을 만한 작업kenel.tistory.com상향식 동적 프로그래밍 문제다. #1-2 구간 합 도출 방법캐싱을 위해 모든 range 예를 들어, 1..300, 40..70, 998..999, ...들을 전부 구하는 것은 사실상 불가능하다. 무수한 경우의 수가 있기에 저장 공간과 계산 시간 모두 안드로메다로 날아가 버린다. 대신, 1..1, 1..2, 1....

[백준] 11726 (2×n 타일링)

#1 알고리즘#1-1 직관화타일로 생각하면 머리가 아프다. 어떤 수 n을 1과 2만 사용한 덧셈식으로 표현했을 때, 나올 수 있는 가짓수로 생각하면 한결 명확해진다. 가령, 위 타일 조합을 1 + 1 + 2 + 1로 생각하는 것이다. #1-2 피보나치?var n = -1val cache = Array(1001) { -1 }fun main() {    n = readln().toInt()        cache[1] = 1 // (1)    cache[2] = 2 // (1 + 1), (2)    cache[3] = 3 // (1 + 1 + 1), (1 + 2), (2 + 1)    cache[4] = 5 // (1 + 1 + 1 + 1), (1 + 1 + 2), (1 + 2 + 1), (2 + 1 + 1..

[백준] 1697 (숨바꼭질)

#1 알고리즘bfs 문제다. 왜 bfs일까? 이 문제에서, 어떤 '위치'에서 도출되는 '다음 위치'는 3종류가 존재한다. 그리고 그 '다다음 위치' 또한 그럴 것이다. 이런 식으로 어떤 단계(순서)가 존재하며 그 단계(순서)에 맞게 순회를 해야한다. bfs 또한 그래프의 일종인 트리를 예로 말하자면, 트리의 깊이(= 단계)를 하나하나 정복해나가며 bfs가 수행되지 않는가? 즉, 순회 원리가 서로 같다. #2 여담내가 직면한 문제를 해결하기 위한 도구(자료구조)가 무엇인지 잘 선택해야 한다. 무엇을 선택하는지로 문제의 체감 난이도가 달라지기 때문이다. 게다가, 어떤 도구를 사용할 지 고민하는 그 과정 자체가 문제 풀이에 도움이 된다.  #3 코드 - 코틀린import java.util.*var n = -1..