분류 전체보기

개인 프로젝트/[2021] 코드악보 공유APP

17. UI 수정 / 악보 좋아요 기능 추가 / 그룹 기능 추가 / 성능 개선

이 앱의 메인 기능인 악보에 대한 CRUD 구현이 모두 끝나서 주변 기능들을 구현하기 시작했다. 1. '좋아요', Key 조절 기능 추가 악보 뷰어 페이지에서 악보에 좋아요를 누를 수 있도록 버튼을 만들고, 마이페이지에서는 내가 좋아요 표시한 악보를 모아서 볼 수 있도록 했다. 이를 위해서 자동 스크롤 UI 위치를 하단으로 수정했다. 좋아요 버튼을 상단 앱바에 넣고 싶었기 때문이다. 그리고 하단에 자동 스크롤 UI만 덩그러니 넣으니 허전해서 마침 구현하려고 했었던 악보 키를 조절하는 버튼도 넣었다. UI가 나름 괜찮아졌다 ㅎㅎ 지금 악보는 내가 미리 좋아요 표시를 해두어서 색이 칠해진 하트 모양이다. 좋아요를 표시하지 않은 악보는 색이 칠해져 있지 않다. 지금 포스팅을 쓰면서 생각해보니 하트 색을 빨간색..

알고리즘 (PS)/BOJ

[백준] 20936 - 우선순위 계산기 (P4)

문제 소개 https://www.acmicpc.net/problem/20936 20936번: 우선순위 계산기 국렬이는 두 번씩이나 계산기 문제를 내놓고 또 계산기 문제를 냈다. 이대로라면 죽을 때까지 계산기를 우려먹을 생각이고, 당신은 귀찮지만 상금을 얻기 위해서 주어진 수식을 규칙에 맞게 계 www.acmicpc.net 2021 WINTER 신촌 연합 대학생 프로그래밍 대회(SAUPC)의 A번으로 나왔던 문제이다. 당시에는 너무 복잡해서 그냥 넘겨버렸는데, 아니나 다를까 플레티넘 문제였다ㅋㅋ 이번 SAUPC에서 구현문제를 담당하게 되어서 연습을 위해 풀어보았다. 전에 풀었던 뒤집힌 계산기와 비슷한 유형이지만, 좀 더 복잡하다. 알고리즘을 어떤 걸 써야할지 감이 잡힐 듯 말듯 해서, 결국 알고리즘 분류를..

알고리즘 (PS)/BOJ

[백준] 20129 - 뒤집힌 계산기 (G3)

문제 소개 https://www.acmicpc.net/problem/20129 20129번: 뒤집힌 계산기 국렬이는 신촌 연합 프로그래밍 경진대회에서 '독특한 계산기'를 Div 1 no solve 방지 문제로 냈다가 생각보다 많이 풀리지 않아서 정말 많이 반성하였다. 그 때문에 해당 문제보다 (출제자인 국렬 www.acmicpc.net 문제에서 설명하는 계산기를 단순히 구현하는 문제입니다. 차근차근 하나씩 구현하다보면 어렵지 않게 풀 수 있습니다. 풀이 과정 이 문제가 요구하는 사항은 아래와 같습니다. 우선 주어지는 입력이 숫자와 연산자가 뒤섞인 그냥 쌩문자열이기 때문에 0. 문자열을 잘 잘라서 숫자와 연산자를 구분해놔야 합니다. 그 다음으로 1. 뒤에서부터 앞으로 계산하기 2. 숫자 앞에 의미없는 0을..

Android/Flutter

[Flutter] 서로 다른 Text 위젯의 글자 높이 통일하기

개인 프로젝트로 앱을 만들다가 문제가 한가지 발생했습니다. Wrap 위젯에 Text 위젯을 담고 있는 커스텀 위젯을 자식으로 담아 배치했는데, 각 Text 위젯들의 글자 정렬상태가 맞지 않는 것이었습니다. 예를 들면 이런 모습입니다. Text위젯 하나에 "중에" 를 넣고 그 옆의 Text위젯에 "서 하필" 을 넣었습니다. "중에" 와 "서 하필" 의 줄이 어긋나있습니다. 굉장히 보기 불편하지만, 한글로만 이루어진 가사에서는 그나마 나은 편 입니다. 한글과 영어, 일본어가 섞이니 난장판이 되었습니다. 처음에는 Flutter 버그라고 생각했습니다. 역시 cjk에 대한 지원은 아직 덜된건가 싶었죠 ㅋㅋ 검색도 뭐라고 해야할지 몰라서 text alignment in wrap widget 이런 식으로 검색도 해보..

알고리즘 (PS)/BOJ

[백준] 2376 - 단말 정점들의 거리 (P5)

문제 소개 https://www.acmicpc.net/problem/2376 2376번: 단말 정점들의 거리 첫째 줄에 단말 정점의 개수 n(2≤n≤1,000)이 주어진다. 다음 n-1개의 줄에는 차례로 1, 2번 단말 정점 사이의 거리, 2, 3번 단말 정점 사이의 거리, …, n-1, n번 단말 정점 사이의 거리가 주어진다. 다 www.acmicpc.net 이진트리와 인오더의 개념을 이용한 단순 구현 문제입니다. 규칙을 찾는다는 점에서 구성적 문제이기도 합니다. 문제를 어떻게 풀어야 할지는 알겠는데, 구현을 어떻게 할 지 감이 안잡히는 느낌으로 풀었던 문제입니다. 풀이 아이디어 풀이 아이디어는 생각보다 간단합니다. 문제에서 주어진 조건들을 하나씩 살펴보겠습니다. 1. n개의 단말 정점을 갖는 루트가 ..

알고리즘 (PS)/BOJ

[백준] 11054 - 가장 긴 바이토닉 부분 수열 (G3)

문제 소개 https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 가장 긴 증가하는 부분 수열의 응용문제이다. 가장 긴 증가하는 부분 수열의 풀이 과정을 정확하게 이해하고 있다면, 이 문제 역시 어렵지 않게 풀 수 있다. (골드3 난이도길래 특별한 코너케이스가 숨어있는 줄 알았는데, 다행히 그런 건 없었다.) 11053 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 9465 스티커 https://www.acmicpc.ne..

개인 프로젝트/[2021] 코드악보 공유APP

16. 악보 구성 수정, 악보 검색 기능 추가

원래는 악보를 구성할 때, 페이지 별로 구성하는 것을 생각했었다. verse 페이지 작성하고, chorus 페이지 작성하고, bridge 페이지를 각각 만든다음 '전체' 페이지에는 각 페이지에 작성한 코드를 이리저리 조합해서 만들자! 이게 내 처음 아이디어였는데, 생각보다 '전체' 페이지에서 각 페이지의 코드를 합치는게 복잡했다. 단순히 각 페이지의 코드를 읽어서 붙이는 것이라면 상관없겠지만, (사실 이것도 구현하기가 너무 귀찮았다.) 이왕 각 페이지의 코드를 참조하는거, '전체페이지의 코드'와 '각 페이지의 코드' 를 서로 연동해서 전체 페이지에서 수정한 코드가 각 페이지에서도 수정되고, 각 페이지에서 수정한 코드가 전체에서도 수정되도록 하고 싶었다. 이걸 구현하려면, 결국 모든 코드셀에대해 Globa..

알고리즘 (PS)/BOJ

[백준] 14653 - 너의 이름은

https://www.acmicpc.net/problem/14653 14653번: 너의 이름은 첫째 줄에 OAKAK TALK방에 있는 사람 수 N과 총 메시지의 개수 K, 정보를 알고 싶은 메시지의 번호 Q가 주어진다. (1 ≤ N ≤ 26, 1 ≤ K ≤ 10,000, 1 ≤ Q ≤ K) 둘째 줄부터 K개의 줄에 걸쳐 메시지를 읽지 www.acmicpc.net 알고리즘 분류는 문자열, 구현으로 되어있다. 구현 문제가 맞기는 한데, 개인적으로 실버5 난이도보다는 살짝 높은 난이도의 구현이라고 생각했다. 풀이 아이디어 이 문제는 메세지를 보낸 사람과 그 메세지를 읽지 않은 사람의 숫자가 주어질 때, 임의로 선택한 메세지를 읽지 않은 가능성이 있는 사람을 모두 찾는 문제이다. 처음 이 문제를 봤을 때는 풀이..

자기계발/코딩테스트, 대회

UCPC(전국 대학생 프로그래밍 대회) 2021 예선 후기

사실 크게 나가야겠다는 생각을 하지 않고 있었는데, 에브리타임을 보다가 우연히 UCPC 모집글을 보게 되었고, 그냥 한번 나가볼까~ 해서 나갔다. 팀명은 마감하루전에타에서만나급조된팀 이였다ㅋㅋ 약 270개 정도의 팀이 참가했고, 10문제 중 5문제를 풀어서 72등이 되었다. 안타깝게도 본선에는 진출하기 힘들 것 같다. 그래도 정말 하루만에 급조된 팀 치고는 잘한 편인 것 같다ㅋㅋ 나는 B번, G번을 풀었는데, G번의 의도된 난이도가 플레티넘이라 정말 놀랐다. B번은 단순 BFS문제였는데 최초로 푼 팀이 대회 시작 3분만에 풀어서 정말 놀랐다.. G번은 내가 느끼기에는 그냥 수학문제였는데, 여러 인스턴스에 대해서 노가다를 했다. 그렇게 규칙을 찾아서 규칙에 맞게 문제를 풀었더니 AC를 받았다. 박스가 K개..

알고리즘 (PS)/BOJ

[백준] 9465 - 스티커

https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net DP 유형의 '스티커' 문제이다. 데이터가 추가되면서 옛날에 맞았던 코드가 틀리자 다시 풀어보게 되었다. 기본적인 DP의 문제풀이 방식은 문제를 단계별로 쪼개어 이전단계에 푼 문제를 이번 단계 풀이에 활용하는 것이다. 이 문제는 이전 단계에 어떻게 문제를 풀었는지에 따라 이번 단계에 문제 풀이 방식이 달라진다는 점이 특징인 문제였다. 피보나치 수열, 정수삼각형과 같은 단순 메모이제이션 ..

에버듀
'분류 전체보기' 카테고리의 글 목록 (47 Page)