전체 279

디베이터 - 관계

#1 개요주방세제 피니시의 제조사는 미국인을 대상으로 설거지에 대해 조사한 적이 있다. 열 명 중 여섯이 설거지가 스트레스라고 대답했고, 그중 4분의 3이 그릇을 미리 한 번 헹구어 식기세척기에 집어넣는다고 했다. 하지만 가장 재미있는 발견은 가사 분담 논쟁이었다. 모든 가정이 설거지와 관련된 논쟁을 한해 평균 217차례, 한 달에 18차례나 벌였다. 대부분은 누가 세척기를 비워야 하는가에 관한 것이었고 개수대에 담가둔 그릇 때문에도 싸웠다.가까운 이들 간의 토론은 어떻게 해야 하는가? #2 핵심 논리#2-1 설거지 논쟁의 비극설거지에 대한 설문조사의 결과(#1)는 사람들이 논쟁에 대해 암묵적으로 알고 있는 두 가지 사실을 뚜렷이 드러냈다.1. 지속적인 의견 충돌은 가까운 사이에서 가장 많이 일어난다. ..

[Android] Pointer input - Drag

#1 개요#1-1 공식 문서 드래그, 스와이프, 플링 | Jetpack Compose | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 드래그, 스와이프, 플링 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. draggable 수정자는 동작을 한 방developer.android.com위 공식 문서를 나의 언어로 정리했다. #1-2 AnchoredDraggable Swipeable에서 AnchoredDraggable로 이전 | Jetpack Compose | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Swipeable에서 Anchored..

[백준] 26169 (세 번 이내에 사과를 먹자)

#1 알고리즘 그래프 - 깊이 우선 탐색 (DFS, Depth-First Search)#1 그래프의 탐색 깊이 우선 탐색 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 깊이 우선 탐색 깊이 우선 탐색의 애니메이션 예시 깊이 우선 탐색( - 優先探索, 영어: depth-fkenel.tistory.comDFS를 이용했다. 한 단계식 정복해가며 차근차근 나아가는 너비 우선 탐색과 달리, 깊이 우선 탐색은 '한 방향으로 갈 때까지 가보기'를 반복한다. 따라서 BFS보단 DFS가 이 문제에 어울린다. 이 문제에서는 최대 3번 이동해야 한다는 제한이 있다. 깊이 우선 탐색 알고리즘을 살짝 고쳐서, 문제에서 제시한 깊이까지만 수행되도록 만들었다. #2 코드 - 코틀린#2-1 성공한 코드var y..

[백준] 7569 (토마토)

#1 알고리즘 그래프 - 너비 우선 탐색 (BFS, Breadth-First Search)#1 그래프의 탐색 너비 우선 탐색 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전.ko.wikipedia.org그래프의 각 정점을 한번씩 방문할 필요가 있다고 해보자. 그 방문의 방kenel.tistory.com #2 코드 - 코틀린import java.util.*var X = -1 // Mvar Y = -1 // Nvar Z = -1 // Hlateinit var tomatoes: Array>>const val RIPE_TOMATO = 1const val UNRIPE_TOMATO = 0const val RESULT_CANT_RIPEN_ALL = -1fun main() { val boxSiz..

[백준] 2178 (미로 탐색)

#1 알고리즘 그래프 - 너비 우선 탐색 (BFS, Breadth-First Search)#1 그래프의 탐색 너비 우선 탐색 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전.ko.wikipedia.org그래프의 각 정점을 한번씩 방문할 필요가 있다고 해보자. 그 방문의 방kenel.tistory.combfs 알고리즘으로 풀었다. #2 코드 - 코틀린import java.util.*var Y = -1var X = -1lateinit var miro: Array>const val WALL = 0fun main() { // (1) make miro and make discovered for bfs val yAndX = readln().split(" ") Y = yAndX[0]..

[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, Breadth-First Search)#1 그래프의 탐색 너비 우선 탐색 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전.ko.wikipedia.org그래프의 각 정점을 한번씩 방문할 필요가 있다고 해보자. 그 방문의 방kenel.tistory.combfs 문제다. 왜 bfs일까? 이 문제에서, 어떤 '위치'에서 도출되는 '다음 위치'는 3종류가 존재한다. 그리고 그 '다다음 위치' 또한 그럴 것이다. 이런 식으로 어떤 단계(순서)가 존재하며 그 단계(순서)에 맞게 순회를 해야한다. bfs 또한 그래프의 일종인 트리를 예로 말하자면, 트리의 깊이(= 단계)를 하나하나 정복해나가며 bfs가 수행되지 않는가? 즉, 순회 원리가 서로 같다...