분류 전체보기
-
[Android] 버전 카탈로그로 Gradle 버전 관리하기Android 2024. 4. 24. 00:42
멀티 모듈에서의 버전 컨트롤의 중요성이건 플러터를 할 때도 있었던 문제인데, 멀티 모듈을 사용하게 되면 꼭 한 번 겪는 문제가 있습니다. 각 모듈 별로 여러 가지 라이브러리를 사용할테고, 이 때 같은 라이브러리를 각 모듈이 사용할 때 다른 버전을 쓰게 된다면 반드시 충돌이 난다는 것이었습니다. 당연하게도 같은 라이브러리라도 다른 버전을 사용한다면 해당 버전에서 사용하는 메서드 형태나 속성 등이 달라지게 될테니, 무엇을 사용해야하는 지 모를테지요. 그렇기 때문에 일일이 버전을 통일화 시켜줘야 하는 문제가 있었습니다. 놀랍지 않게도 안드로이드 또한 마찬가지입니다. 많이들 사용하는 Clean Architecture를 위한 모듈 (레이어) 분리를 한다고 한다면, 같은 현상이 발생할 수 있습니다. 버전이..
-
[알고리즘][백준] 14719. 빗물알고리즘 2024. 4. 22. 23:39
문제https://www.acmicpc.net/problem/14719 문제 아이디어 1처음엔 스택 기반의 문제인 줄 알았습니다. 가장 왼쪽부터 탐색하면서, 왼쪽보다 높은 기둥을 만나면 지금까지 스택에 넣었던 걸 하나씩 꺼내면서 높이를 계산해주고, 가장 왼쪽 기준을 다시 업데이트해주면 될 것이라고 생각했습니다.예)3 1 2 3 4 1 1 2 가 있다면,3을 저장해놓고 다음 3을 만날 때까지 스택에 저장해두고,3, [1, 2], 3 에서 1 과 2의 높이에 따라 물의 양을 계산해주면 될 것으로 생각했습니다. 또한 만약 가장 왼쪽 기준 (위에서는 연산을 다 끝낸 후 4부터 시작) 보다 높거나 같은 기둥이 안 나오면 나머지는 다 빼서 나머지 계산을 하면 될 것이라 생각했습니다.예)4 [1 1 2..
-
[알고리즘][백준] 2493. 탑알고리즘 2024. 4. 20. 00:05
문제https://www.acmicpc.net/problem/2493 문제 아이디어 1: 처음부터 탐색처음엔 왼쪽부터 탐색하면서 자기보다 낮은 탑을 만나면 자신의 포지션으로 업데이트하고 다음 것을 찾게 했습니다. ex) 6 9 5 7 4 에서6에 대하여 [9, 5, 7, 4] -> [9는 통과, 5는 부딪힘, 7은 통과, 4는 부딪힘] -> [0, 1, 0, 1]9에 대하여 [5, 7, 4] -> [5는 부딪힘, 7은 부딪힘, 4는 부딪힘] -> [0, 2, 2, 2]5에 대하여 [7, 4] -> [7은 통과, 4는 부딪힘] -> [0, 2, 2, 3]7에 대하여 [4] -> [4는 부딪힘] -> [0, 2, 2, 4] ... 시간 초과가 발생했습니다. 그래서 방법을 달리 했습니다. 문제 아이디어 2:..
-
[Html & CSS] :before을 이용한 제목 꾸미기Html & CSS 2024. 4. 19. 00:00
CSS로 타이틀을 꾸미고 싶어요 티스토리 블로그를 꾸미다가 매번 디자인을 바꾸기 귀찮아서 커스텀하게 디자인을 수정하고 있는데, 가령 본문1을 선택하면 왼쪽에 초록색 바가 생기고, 볼드체를 적용하면 초록색 글씨로 바뀌게 되게끔 자동 적용하게 만들고 있습니다. 그리고 본문3을 적용하면 아래의 세번째 이미지처럼 바뀌게 만들고 싶었습니다. :before와 :afterCSS에 :before와 :after 속성이 있더라구요? 무엇인지 보니까, 말 그대로 컨텐츠 앞, 뒤에 새로운 수식을 만들기 위해 사용하는 것이라고 합니다. 아이콘, 숫자, 이미지 등 텍스트를 장식하기 위해 쓰이는 것으로 가상 요소라고 부른다고 하네요. 그래서 :before는 기준 컨텐츠의 앞에, :after는 기준 컨텐츠의 뒤에 새로운..
-
[알고리즘][백준] 9017. 크로스 컨트리알고리즘 2024. 4. 18. 04:17
문제https://www.acmicpc.net/problem/9017 해결 아이디어조건이 은근 까다로운데,한 팀에 최소 6명. 6명 안되면 탈락등수가 곧 점수. 팀별 점수 합산이 낮을 수록 유리한 것동점이면 5번째 주자 점수가 낮은 쪽이 승리그래서 아래와 같은 방식으로 풀었습니다.일단 카운팅부터 해서 6명 안되는 팀은 리스트에서 다 빼버렸습니다.빼버린 리스트를 다시 돌면서 팀별로 카운팅하면서 4명까지만 합산하고, 5번째 선수에 대한 정보는 따로 저장했습니다.맵 전체를 돌면서 점수를 기준으로 순위를 정하고, 동점이면 5번째 선수 저장한 곳에서 빼서 비교해줬습니다. N = int(input())for i in range(N): T = int(input()) ..
-
[알고리즘][백준] 20920. 영단어 암기는 괴로워알고리즘 2024. 4. 17. 02:43
문제https://www.acmicpc.net/problem/20920 # 자주 나오는 단어일수록 앞에 배치한다.# 해당 단어의 길이가 길수록 앞에 배치한다.# 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다import sysinput = sys.stdin.readlineN, M = map(int, input().rstrip().split())words = {}for _ in range(N): word = input().rstrip() if (len(word) sorted(words.items(), key = lambda x : (-x[1], -len(x[0]), x[0]))sorted 메서드에 key = labmda x를 넣으면, x를 기준으로 원..
-
[Flutter] iOS 17부터 InAppWebView 웹 디버깅이 되지 않아요Flutter 2024. 4. 8. 01:43
오늘은 조금 짧막한 글이 될 것 같네요. 특별한 기술적인 내용이라기보다 겪었던 이슈에 대한 정리여서, 슈욱하고 끝날 것 같습니다.발단의 배경Flutter에는 내부 라이브러리인 flutter_webview와 함께 많이 사용하는 InAppWebView라는 라이브러리가 존재합니다. 비록 Flutter 유저가 만든 비공식 라이브러리지만 퀄리티만큼은 flutter_webview에 버금가기 때문에 많이 사용하는 라이브러리입니다. flutter_inappwebview/flutter_inappwebview_ios/ios/Classes/InAppWebView/InAppWebView.swift at master · pichillilorenzo/flutter_iA Flutter plugin that allows..
-
[Computer Science] MVC, MVP, MVVMAndroid 2024. 4. 4. 01:12
MVC, MVP 등의 MV-Whatever는 개발자가 다른 개발자와 협업을 할 때 약속된 패턴으로 개발함으로써 개발을 쉽게 할 수 있도록 만들어진 디자인 패턴이죠. 이것들이 무엇인지, 어떻게 사용하는 지 한 번 자세하게 정리할 필요가 있다고 느꼈습니다.MVC소프트웨어 아키텍처 패턴 중에서 가장 유명한 3형제 중 첫째입니다. 다른 얘기할 것 없이 바로 확인해 봅시다. Controller는 여러 개의 View를 선택할 수 있습니다.사용자의 입력이 Controller로 들어옵니다.Controller는 Model을 업데이트합니다.Model이 변경됨에 따라 3가지로 View를 업데이트할 수 있습니다.Model이 Notify를 날려 View를 일깨워줍니다.Model에 Observer를 달아놓은..