분류 전체보기

알고리즘 (PS)/BOJ

[백준] 5719 - 거의 최단 경로

www.acmicpc.net/problem/5719 5719번: 거의 최단 경로 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 장소의 수 N (2 ≤ N ≤ 500)과 도로의 수 M (1 ≤ M ≤ 104)가 주어진다. 장소는 0부터 N-1번까지 번호가 매겨져 있 www.acmicpc.net 다익스트라 응용문제로 풀게된 문제이다. solved.ac 기준 플래티넘 5의 난이도를 가진 문제이다. 정말 플레티넘답게 쉽게 안풀리는 문제였다. 질문게시판의 반례와 대회 테스트케이스를 활용해가며 4시간만에 풀었다.. 내가 문제에 접근한 방법, 문제를 푼 아이디어를 기록하고자한다. 이 문제를 푸는 큰 흐름은 다음과 같다. 다익스트라(최단거리 계산) -> 최단 경로들 삭제 -> 삭제한..

Infra/Oracle Cloud

[오라클 클라우드(Oracle Cloud)] Toad for MySQL SSH 접속하기

기존에는 phpMyAdmin을 활용해서 DB를 조작하고 있었는데 어색하기도 하지만 불편한 점이 많아서 잘 쓰지 않게 되었습니다. 프로젝트에 사용할 테이블 레이아웃 짜는 것도 귀찮았지만, DB조작이 불편하기도 해서 테이블 만들기를 미루고 있었습니다. (사실 변명인거 압니다...ㅠㅠ) 그러다가 검색을 통해 Toad for MySQL을 무료로 쓸 수 있음을 알게 되었습니다. 그런데 이걸 설치하고 나서부터 갑자기 phpMyAdmin 접속을 서버단에서 막더라구요.. 서버를 부트볼륨으로 백업해두긴 했는데 기존 서버에 덮어씌워서 백업하는 방법은 잘 모르겠어서 그 방법은 포기했습니다. 그래서 phpMyAdmin을 지우고 다시 설치할까도 고민했는데 아무리봐도 CLI 환경에서 phpMyAdmin을 설치하는 건 너무 귀찮은..

Infra/Oracle Cloud

[오라클 클라우드(Oracle Cloud)] Atom SFTP 연결하기

원래 Edit Plus를 이용해서 sftp로 오라클 클라우드로 만든 서버에 접속하여 코딩을 했습니다. 그러나 Edit Plus는 아톰에디터에 비해서 너무 불편했습니다. 그래서 에딧플러스에서 읽어온 코드를 복사해서 아톰에디터에 붙여넣고 수정하는 엄청난 바보짓을 해버렸습니다 ㅋㅋ 이 짓을 하다보니 못해먹겠어서 혹시나 검색해봤는데 역시 아톰에디터로도 SFTP 원격 접속이 되더군요.. 아톰에디터 - File - Settings 로 들어갑니다. 좌측에서 install 탭으로 갑니다. remote ftp를 검색한 후 저는 icetee 님의 패키지를 설치했습니다. 100만회가 넘는 다운횟수가 눈에 띄네요. 사진상 3번째입니다. 설치가 끝나면 Packages - Remote FTP - Create SFTP config..

알고리즘 (PS)/BOJ

[백준] 2662 - 기업 투자

www.acmicpc.net/problem/2662 2662번: 기업투자 어떤 투자가가 여러 기업들에게 돈을 투자해서 최대의 이익을 얻고자 한다. 단, 투자는 만원 단위로 할 수 있으며 각 기업은 많이 투자할수록 많은 이익을 투자가에게 돌려준다. 돈을 투자하지 www.acmicpc.net 문제를 보자마자 DP로 풀면 되겠다는 생각을 떠올리는 것은 어렵지 않았다. DP 점화식을 떠올리는 과정이 익숙하지가 않아서 (특히 2차원 이상으로 갈 경우..) 점화식을 고민하고 구현하는데 시간을 많이 쏟았다. 문제를 풀고나니 알고리즘 분류에 냅색문제로 되어있는 것을 보았는데, 생각해보니 냅색문제와 점화식을 도출한 과정이 비슷했다. 문제를 풀기위해 사고한 과정을 정리하고자 한다. 맨 처음엔 모든 경우의 수를 다 체크해보..

Tool & Language/Edit Plus

[edit plus] 파일 인코딩 변경 (feat. html, php 한글 깨짐)

오라클 클라우드에 웹서버를 만드는 것을 공부하던 중 html로 작성한 웹 페이지의 한글이 깨지는 현상을 발견했다. 전에는 php 문자열 인코딩 변환 함수를 사용해서 강제로 인코딩을 바꿔주어 해결했었다. 당시 문제를 해결하기 위해 구글링을 했을 때, 파일 저장시 인코딩을 변경하는 것에 대한 방법도 소개가 되어있었다. 그런데 에딧플러스는 메모장처럼 저장할 때 인코딩 변경 옵션이 뜨지 않는다. 그래서 그 해결책은 나와 상관없다고 생각하고 있었는데.. 알고보니 매우 상관이 있었다. 다음과 같이 한글이 전부 깨져있는 문제를 발견했다. 에딧 플러스로 들어가 원본 파일을 보면 다음과 같다. 분명 meta 태그로 charset 속성까지 설정했음에도 한글이 깨진다. 이 문제는 파일 인코딩에 있었다. 에딧플러스 우측하단을..

알고리즘 (PS)/BOJ

[백준] 17371 - 이사

www.acmicpc.net/problem/17371 17371번: 이사 $(\frac{2}{3}, \frac{1}{3})$으로 이사를 가면 가장 가까운 편의시설은 (0, 1)으로 거리는 $\frac{2\sqrt{2}}{3}$이고, 가장 먼 편의시설은 (-4, 1) 혹은 (4, -3)으로 거리는 둘 다 $\frac{10\sqrt{2}}{3}$이다. 두 거리의 www.acmicpc.net 그리디 알고리즘 연습문제로 풀게된 '이사' 문제이다. 고민끝에 다른 분의 풀이를 봤다. burningjeong.tistory.com/293 17371 이사 이런 문제가 기하인가? 원 공식이랑 비슷하니 원을 사용하나? 고민 많이 했는데 그리디 문제였다. 길이의 평균을 구하는 거라 집이 편의점 위에 가도 값의 차이는 없다. ..

Android/Java

[안드로이드] getWidth() 와 getMeasuredWidth()

안드로이드 뷰의 getWidth 메소드와 getMeasuredWidth 메소드의 차이를 정리하고자 합니다. 본 메소드의 차이점을 명확하게 이해하기 위해 EditText를 활용해보겠습니다. 커스텀 레이아웃에 EditText를 넣고, 레이아웃의 width 값은 wrap_content로 EditText의 가로폭에 맞춥니다. 그러면 EditText 내부의 값이 바뀔 때마다 커스텀 레이아웃의 width 값이 달라집니다. 이때 값이 바뀌고나서 바뀐 width값을 가져오는 과정을 보면 두 메소드의 차이를 명확하게 이해할 수 있습니다. 사용한 코드와 레이아웃은 현재 진행중인 개인프로젝트에 사용된 소스코드의 일부입니다. 커스텀 레이아웃의 xml 파일은 다음과 같습니다. EditText의 값이 바뀔 때마다 변경된 커스텀 ..

Android/Java

[안드로이드] Constraint Layout 동적 생성 후 동적으로 뷰 추가하기

Constraint Layout을 동적으로 생성한 후에 동적으로 뷰를 추가해보겠습니다. 이걸 해보겠다고 8시간을 구글링 했는데 결국 스택오버플로우에서 답을 찾았습니다. (앞으로 구글링은 영어로 해야하려나 봅니다...ㅋㅋ) stackoverflow.com/questions/45263159/constraintlayout-change-constraints-programmatically ConstraintLayout: change constraints programmatically I need help with ConstraintSet. My goal is to change view's constraints in code, but I cant figure out how to do this right. I hav..

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

7. 악보 검색 / 등록 페이지 제작 (5) - 악보 추가 기능 만들기(1)

개인적으로 구상에 가장 많은 시간을 쏟았던 부분이다. 지난 포스팅이후로 지금 포스팅을 쓰는 시점까지 계속 구상만 했다.. 처음에 UI를 참고하려고 했던 어플리케이션은 Chordify 라는 앱이다. 박자칸을 나눠두고 각각의 칸에 코드를 적어둔다. 노래가 나오면 노래에 맞게 박자가 이동하며 코드가 적혀있는 칸의 배경이 바뀐다. 이 앱의 단점은 몇가지가 있다. 사실 지금 만드는 앱을 구상하게된 계기이기도 하다 1. 유튜브 음원으로부터 추출한 코드의 정확도가 떨어진다. 2. 코드가 단순하다. 3. 박자가 단순하다. 4. 코드와 박자를 수정할 수 없다. 그래서 맨 처음 생각한 것은 1. 음원에서 추출하지 말고 집단지성을 이용하자. 2. 더 복잡한 코드를 입력할 수 있게 하자. 3. 더 복잡한 박자에 맞게 입력할 ..

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

6. 악보 검색 / 등록 페이지 제작 (4) - 검색기능 구현 & 악보 뷰어 제작

악보의 세부 내용을 입력받기 전에 간단하게 검색부터 후딱 구현해보았다. 우선 검색 버튼의 이벤트를 읽어올 리스너를 달아주고, 검색 이벤트가 발생했을 때 검색을 수행할 코드를 작성하였다. @Override public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_tab_sheet, menu); mSearch = menu.findItem(R.id.tab_sheet_top_search); SearchView searchView = (SearchView)mSearch.getActionVie..

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