https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 어렵지 않은 구현 & 시뮬레이션 문제. 꼼꼼하게 구현만 하면 풀 수 있다. 판의 사이즈가 크지 않기 때문에 문제에서 시키는 그대로 알고리즘을 짜서 돌리고, 그 결과값을 출력하면 된다. 이 문제를 풀 때는 2가지만 떠올리면 되었다. 1. 어떻게 확산을 겹치지 않게 시킬 수 있을지 2. 공기청정기의 확산을 어떻게 구현할 것인지 어떻게 확산을 겹치지 않게 시킬 수 있을지 가령, 문제의 조건과는 맞지 ..
생각보다 정말 많이 어려웠던 대회, 신촌지역 대학교 프로그래밍 동아리 연합 여름 대회(SUAPC 2021 Summer) 후기입니다. 플레티넘에서 군림하고 있던 팀원(버스기사) 두 분과 함께 대회를 준비하고 참가하게 되었습니다. 대회 준비 우선 전략을 짜기에 앞서 서로 자신있는 알고리즘에 대해 이야기를 나누었습니다. 한 분은 DP와 그리디에 집중해주셨고, 다른 한분은 올라운더이셔서(운전대 담당) 나머지 커버를 해주시고 저는 수학에 약해 그리디와 그래프, 구현 위주로 보자고 이야기를 나눴습니다. 대회 전에는 연습을 3번 했습니다. 경북대학교 대회 Gricon 2019, 2020 을 풀었는데, 2019는 생각보다 너무 쉬웠고, 2020은 2019보다 어려웠지만 SUAPC 2020 Winter 보다는 쉬웠습니다..
문제 소개 https://www.acmicpc.net/problem/17081 17081번: RPG Extreme 요즘 택희는 RPG 게임을 하고 있다. 던전을 헤쳐나가며 몬스터를 물리치고, 아이템을 모으고, 레벨 업을 하여 보스 몬스터를 물리치는 전형적인 RPG 게임이다. 이 게임은 N×M 2차원 그리드 위에서 www.acmicpc.net 지문 길이부터 정신이 나갈 것 같은 문제.. RPG Extreme 문제입니다. 윷놀이 문제도 굉장히 스트레스 받는 문제라고 생각했는데, 이건 진짜 장난아니네요 그래도 윷놀이보다 출력형식은 양심적이라 좋았습니다.. 또 이 문제를 만들면서 진짜 게임 만드는 기분이라 꽤 재밌기도 했습니다. 디버깅은 짜증났지만요 ㅋㅋ 문제를 풀기 위해 노트에 "요약해서" 정리한 위 문제의 ..
이 앱의 메인 기능인 악보에 대한 CRUD 구현이 모두 끝나서 주변 기능들을 구현하기 시작했다. 1. '좋아요', Key 조절 기능 추가 악보 뷰어 페이지에서 악보에 좋아요를 누를 수 있도록 버튼을 만들고, 마이페이지에서는 내가 좋아요 표시한 악보를 모아서 볼 수 있도록 했다. 이를 위해서 자동 스크롤 UI 위치를 하단으로 수정했다. 좋아요 버튼을 상단 앱바에 넣고 싶었기 때문이다. 그리고 하단에 자동 스크롤 UI만 덩그러니 넣으니 허전해서 마침 구현하려고 했었던 악보 키를 조절하는 버튼도 넣었다. UI가 나름 괜찮아졌다 ㅎㅎ 지금 악보는 내가 미리 좋아요 표시를 해두어서 색이 칠해진 하트 모양이다. 좋아요를 표시하지 않은 악보는 색이 칠해져 있지 않다. 지금 포스팅을 쓰면서 생각해보니 하트 색을 빨간색..
문제 소개 https://www.acmicpc.net/problem/20936 20936번: 우선순위 계산기 국렬이는 두 번씩이나 계산기 문제를 내놓고 또 계산기 문제를 냈다. 이대로라면 죽을 때까지 계산기를 우려먹을 생각이고, 당신은 귀찮지만 상금을 얻기 위해서 주어진 수식을 규칙에 맞게 계 www.acmicpc.net 2021 WINTER 신촌 연합 대학생 프로그래밍 대회(SAUPC)의 A번으로 나왔던 문제이다. 당시에는 너무 복잡해서 그냥 넘겨버렸는데, 아니나 다를까 플레티넘 문제였다ㅋㅋ 이번 SAUPC에서 구현문제를 담당하게 되어서 연습을 위해 풀어보았다. 전에 풀었던 뒤집힌 계산기와 비슷한 유형이지만, 좀 더 복잡하다. 알고리즘을 어떤 걸 써야할지 감이 잡힐 듯 말듯 해서, 결국 알고리즘 분류를..
문제 소개 https://www.acmicpc.net/problem/20129 20129번: 뒤집힌 계산기 국렬이는 신촌 연합 프로그래밍 경진대회에서 '독특한 계산기'를 Div 1 no solve 방지 문제로 냈다가 생각보다 많이 풀리지 않아서 정말 많이 반성하였다. 그 때문에 해당 문제보다 (출제자인 국렬 www.acmicpc.net 문제에서 설명하는 계산기를 단순히 구현하는 문제입니다. 차근차근 하나씩 구현하다보면 어렵지 않게 풀 수 있습니다. 풀이 과정 이 문제가 요구하는 사항은 아래와 같습니다. 우선 주어지는 입력이 숫자와 연산자가 뒤섞인 그냥 쌩문자열이기 때문에 0. 문자열을 잘 잘라서 숫자와 연산자를 구분해놔야 합니다. 그 다음으로 1. 뒤에서부터 앞으로 계산하기 2. 숫자 앞에 의미없는 0을..
개인 프로젝트로 앱을 만들다가 문제가 한가지 발생했습니다. Wrap 위젯에 Text 위젯을 담고 있는 커스텀 위젯을 자식으로 담아 배치했는데, 각 Text 위젯들의 글자 정렬상태가 맞지 않는 것이었습니다. 예를 들면 이런 모습입니다. Text위젯 하나에 "중에" 를 넣고 그 옆의 Text위젯에 "서 하필" 을 넣었습니다. "중에" 와 "서 하필" 의 줄이 어긋나있습니다. 굉장히 보기 불편하지만, 한글로만 이루어진 가사에서는 그나마 나은 편 입니다. 한글과 영어, 일본어가 섞이니 난장판이 되었습니다. 처음에는 Flutter 버그라고 생각했습니다. 역시 cjk에 대한 지원은 아직 덜된건가 싶었죠 ㅋㅋ 검색도 뭐라고 해야할지 몰라서 text alignment in wrap widget 이런 식으로 검색도 해보..
문제 소개 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개의 단말 정점을 갖는 루트가 ..
문제 소개 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..
원래는 악보를 구성할 때, 페이지 별로 구성하는 것을 생각했었다. verse 페이지 작성하고, chorus 페이지 작성하고, bridge 페이지를 각각 만든다음 '전체' 페이지에는 각 페이지에 작성한 코드를 이리저리 조합해서 만들자! 이게 내 처음 아이디어였는데, 생각보다 '전체' 페이지에서 각 페이지의 코드를 합치는게 복잡했다. 단순히 각 페이지의 코드를 읽어서 붙이는 것이라면 상관없겠지만, (사실 이것도 구현하기가 너무 귀찮았다.) 이왕 각 페이지의 코드를 참조하는거, '전체페이지의 코드'와 '각 페이지의 코드' 를 서로 연동해서 전체 페이지에서 수정한 코드가 각 페이지에서도 수정되고, 각 페이지에서 수정한 코드가 전체에서도 수정되도록 하고 싶었다. 이걸 구현하려면, 결국 모든 코드셀에대해 Globa..