본문 바로가기

HOME

(207)
unsolved.hgu 총정리 1편 : https://readable-ko.site/130 [Flutter/unsolved.ac/01] 문제 배경 및 API 호출 문제 [22/11/01] 요즘 학교 백준 랭킹이 많이 내려가기 시작해 어떻게 하면 학교 순위를 올릴 수 있을까 고민하게 되었다. 학교에서 푼 문제 수는 중복되지 않은 문제를 해결할 때 올라가는 것을 알게 되 readable-ko.site 2편: https://readable-ko.site/131 [Flutter/unsolved.ac/02] 위젯 레이아웃 [22/12/03] 전에 이야기했던 것처럼 웹을 배포 기준으로 할 것이기 때문에 모바일 환경과 웹 환경을 다르게 해줄 필요가 있었다. 따로 비율에 따라 반응형(responsible)으로 구현하고 싶어 LayoutBuilder..
[AWS/unsolved.ac/06] aws lightsail ssh 접속방법 계속 이렇게 웹으로 접속하기가 귀찮기도 하고 가독성도 좋지 않아 ssh로 접속하기로 마음 먹었다. 설정에 account를 들어가면 SSH keys가 있는 것을 볼 수 있다. 여기서 키를 새로 생성하거나 업로드할 수 있다. 생성한 이후 다운로드를 통해 키를 로컬에 저장할 수 있는데 단 한 번만 다운로드 받을 수 있으니 주의해서 잘 보관하도록 하자. 다운 받은 후에 로컬로 가기 전에 원하는 서버에서 쓰는 키페어가 무엇인지 확인하자 같은 키를 쓰는 것을 확인하면 IP주소와 Username을 확인하여 연결을 시도한다. 아래 키워드에서 괄호 안에 부위를 자신의 것으로 채우면 될 것이다. ssh -i .//.pem @ 위치에서 키 를 부르고 유저이름과 서버주소를 입력하면 이렇게 뜰 것이다. 키의 permission..
[AWS/unsolved.ac/05] lightsail 웹 서버 만들기 우선 오늘은 라이트세일링에 nginx와 express만 설치해보기로 하였다. (아틀라스 mongo db까지 연동하려고 했지만 너무 큰 산인 것 같다 ㅎㅎ) [NginX 설치] 우선 아래와 같은 명령어를 차례로 서버에 입력하여 nginX를 설치해주었다. sudo -s apt-get update sudo apt-get install nginx service nginx start [노드 익스프레스] curl -fsSL https://deb.nodesource.com/setup_19.x | sudo -E bash - &&\ sudo apt-get install -y nodejs 먼저 위의 명령어를 통해 node.js와 npm을 다운로드한 후 아래 명령어를 통해 설치확인을 하였다. node -v npm -v su..
[AWS/unsolved.ac/04] AWS lightsail 생성 3편 글링크: https://readble-ko.tistory.com/153 [23/04/03] 3월 말에 바로 진행하고 싶었으나 lightsailing 계정을 처음 생성하면 3개월 무료라는 이야기를 접했다! 근데 문자 그대로 3개월이라서 월 말에 시작하면 손해라는 말을 듣고 4월까지 자료만 수집하고 기다렸다. [인스탄스 생성] 전에 언급했던 것처럼 AWS lightsailing으로 프로젝트를 생성하였다. 위치는 내가 코드를 개떡같이 짜더라도 조금이라도 물리적으로 가까우면 덜 느려지지 않을까 싶어 한국으로 했는데 큰 차이는 없을 것 같다. 이후 블루프린트를 선택하라는 말이 있어서 블루프린트가 무엇인지 찾아봤다. 블루프린트는 아마존에서 가장 최적의 상태로 어플리케이션을 OS에 지원해주는 서비스 같았다. 나..
[백준/C++] 1525번 퍼즐 풀이 문제 해석 문제 풀이 종이에 끄적여보니 0을 바꾸는 순서와 숫자의 위치에 관계를 찾기에는 어려움이 있었고 BFS로 브루트포스처럼 모든 나갈 수 있는 경우의 수를 보기에는 체크해야하는 배열이 99개라서 10억에 가까운 배열을 생성하기엔 어려움이 있어 보였다. 그렇다면 map에 필요한만큼 넣고 순서를 잘 백트래킹형식으로 작성해주면 되겠다고 생각했는데 그냥 int를 넣기에는 어려움이 있어서 1차원으로 flatten한 이후 string으로 변환시켜주었다. 그리고 문제에는 함정이 존재하는데 flatten해서 1차원 배열로 계산하는 경우 4번째칸에서 3번째칸으로 7번째칸에서 6번째칸으로 이동이 불가능하다 코 드 #include using namespace std ; const string want = "123456..
[프로그래머스/C++] 2023 KAKAO BLIND RECRUITMENT 택배 배달과 수거하기 문제 해석 문제 풀이 결국 어느지점까지 찍고 돌아와야 하니 가장 먼곳을 가장 적게 다녀오는 것이 핵심이겠다고 생각했다. 택배를 배송하고 나면 수거할 공간이 생기니 자명하게 최대 갯수만큼 배송하고 최대갯수만큼 수거하는 것이 좋을 것이다. 가장 먼곳에서 최대한 많은 갯수를 동시에 배송하고 수거하는 것이 핵심이라 보고 greedy하게 뒷배열부터 처리해주는 결정을 했다. 또한 횟수가 남는다면 그 다음번에 그 횟수만큼 차감한 후 계산하면 되겠다고 생각하였다. 처음 짠 코드는 배송과 수거를 분리하여 고려하고 둘 중에 횟수가 많은 쪽을 정답으로 처리해주었는데 4, 4, [25, 24, 51, 0], [51, 0, 0, 49] 에서 반례가 생겼다. 다시 생각해보니 매 순간마다 더 많이 다녀와야하는 곳이 어디인지 고려하..
[백준/C++/USACO] 23879번 Air Cownditioning 풀이 문제 이해 문제 풀이 이 문제에서 주어지는 배열 2개의 차이를 가지고 이리저리 그리디하게 생각해보았지만 도저히 패턴을 찾을 수 없었고 조금 신박한 방법으로 풀어야하는 문제였다. 문제에서 주어준 배열의 차이는 아래와 같은데 이 이후로가 생각하지 못했던 신박한 부분이었다. 여기에 앞뒤로 0을 붙여주고 인접한 두 수 사이의 차를 구하면 이렇게 되는데 [증명] basis: 어떤 값이 0에서 시작해서 0이 되려면 더하고 뺀 값이 같아야하는 것은 자명하다. 우리가 원하는 것은 결국 희망 온도의 차이가 0이 되는 것이고 희망 온도의 차이가 0이 되면 인접한 차이 값 역시 0이 되어야 한다. 특정 구간의 배열에 1도를 높이거나 1도를 낮추면 위 그림처럼 선택한 배열 앞 뒤로 +1과 -1 혹은 -1 +1 되는 것을 확인..
[MongoDB/unsolved.ac/03] 배포 전 결정 사항 [23/03/29] 나의 오래된 프로젝트를 진짜 배포하기 위해서 그간 짧게 짧게 고민하던 것들을 결정하고 실행에 옮겼다. 혹시 과거 개발 이야기나 개발 내용이 궁금하다면 아래 유튜브와 블로그 글을 참조하면 된다!!ㅎㅎ 이전 글링크: https://readble-ko.tistory.com/131 || https://readble-ko.tistory.com/130 유튜브링크 : https://youtu.be/1iFPER_etxw 전 프로젝트의 문제점 분석 flutter frontend에서 API를 호출하여 유저측에서 api호출 계산이 일어나게 됨 firebase read/write 횟수 제한으로 api 갱신 중 더 이상 db 사용 불가 해결 방안 서버를 따로 두어 cronjob으로 api 호출 firebas..