본문 바로가기

전체 글126

[Android] #9-2 프레그먼트 내에서 프레그먼트 호출하기(컴포넌트 수정) 간단히 작성했었던 컴포넌트 설계서입니다. Activity 내에는 두 개의 frameLayout이 존재합니다. 하나는 동영상 재생 기능의 "플레이어 프레그먼트(PlayerFragment)"를 위한 frameLayout이며, 다른 하나는 여러 재생목록을 보여주는 "HomeFragment", 나만의 재생목록을 보여주는 "MyPlaylistFragment"를 위한 frameLayout입니다. HomeFragment와 MyPlaylistFragment는 각각 하나의 frameLayout을 가지고 있습니다. 각각의 frameLayout은, "검색결과프레그먼트(SearchResultFragment)", "채널프레그먼트(ChannelFragment)" 를 backStack으로 쌓을 수 있습니다. 앱을 접속할 경우, A.. 2023. 4. 10.
[Android] #9-1 프레그먼트 내의 ToolBar(컴포넌트 구조 수정) 전에 포스팅했던 searchView문제를 해결하는데 시간이 꽤나 걸렸습니다. 이전부터 motionLayout 때문에 고생을 해왔기 때문에, 어디서부터 꼬였는지 매우 헷갈렸습니다. 오류를 찾아내는데 질려서 안드로이드 공식 문서를 보던 중, 오류를 찾아낼 수 있었습니다. 저는 각 프레그먼트 xml 파일에 toolBar를 작성한 후, setSupportActionBar()와 onCreateOptionsMenu() 매소드를 통해 정의해주고 있었습니다. 그러면 안된다고 합니다.. 해당 메소드들을 없애고, 따로 초기화를 해주었습니다. lateinit var homeFragmentToolBar: androidx.appcompat.widget.Toolbar lateinit var searchView: SearchVie.. 2023. 4. 10.
[Android] #9 컴포넌트 설계 수정 빠르게 피드백을 받아보고자, 플레이리스트 기능을 제외하고 출시를 했었습니다. 해당 기능에 대한 고려 없이 개발을 했던 것 같습니다. 추가하려던 찰나 컴포넌트 설계를 잘못했다는 것을 깨달았습니다. 기존의 설계는 다음과 같습니다. 하나밖에 없는 액티비티입니다. 액티비티 내 모든 코드가 들어가 있습니다. 피치와 템포를 조절할 수 있는 transpose 페이지입니다. fragment처럼 보이지만 사실 액티비티 코드 내에 있으며, 바텀 내비게이션의 변환 버튼을 눌러 visiblity 상태를 바꾸는 형식으로 코드를 작성하였습니다. 이렇게 만들었던 이유는, 음악을 감상할 때 언제든지 현재의 피치와 템포 상태를 확인할 수 있게끔 하기 위함이었습니다. 위 툴바의 검색 버튼을 누르면, 연관 검색어 RecyclerView .. 2023. 4. 10.
[2023-04-09] 1874 스택 수열(Kotlin) + 8문제 문제 링크: https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 처음 시도했던 코드입니다. package ninethDay import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import jav.. 2023. 4. 9.
[2023-04-08] 10773 제로(Kotlin) 방금 입국하여 부리나케 문제를 풀고 포스팅을 합니다. 한 문제 더 풀 여유가 없어보여서.. 이대로 올립니다. 문제 링크: https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 설명할 부분이 따로 없으므로 작성한 코드만 올립니다. package eighthDay import java.io.* import java.util.* fun main(){ val br = BufferedReader(InputStreamReader(.. 2023. 4. 8.
[2023-04-07] 20920 영단어 암기는 괴로워(Kotlin) 문제 링크: https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 시간초과가 많이 나서 고생을 했습니다. 시간복잡도를 줄이고 줄여서 작성한 첫 코드입니다. fun main(){ val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStreamWriter(System.`out`)) va.. 2023. 4. 7.
[2023-04-06] 11050 이항 계수1(Kotlin) + 4문제 푼 문제들 중, 가장 티어가 높은 것은 실버4였지만, 그나마 고민했던 문제를 포스팅하겠습니다. 문제링크: https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 조합 관련 문제였습니다. 5C2 를 실제로 계산할 때 처럼 함수를 작성해봤습니다. 처음 시도한 코드입니다. package sixthDay import java.io.* fun main(){ // 예를 들어 5C2 였을 때 val br = BufferedReader(InputStreamReader(System.`in`)) val (n,k) = br.readLine().s.. 2023. 4. 6.
[2023-04-05] 7576 토마토(Kotlin) 문제 링크: https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net import java.io.* import java.util.* fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val (m, n) = br.readLine().split(' ').map { it.toInt() } val arr = Array(n) { Array(m) { 0 } } val dx .. 2023. 4. 6.