본문 바로가기

분류 전체보기118

19238. 스타트 택시 (백준, 자바) 문제 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 풀이 1. 단순히 테이블 상에서 가장 가까운 손님을 찾는다. 2. 손님의 목적지까지 데려다준다. 손님을 다 태워줄때까지 반복하면 되는 문제이다. BFS를 사용해서 가까운 손님(거리가 같으면 행,열 조건에 맞게 행렬 비교)을 찾고, 목적지까지 태워주는 대신 연료량을 체크하면 되는 문제 조건은 간단하나 두가지 문제가 있어 시간이 많이 걸리게 되었다. 시간초과 손님을 목적지까지 바래다 주자마자 다음 손님이 위치해 있는 경우 .. 2022. 9. 18.
22년 추석 연휴가 끝나고 (두서없는 끄적인 일기) SSAFY 8기에서 어느덧 프론트엔드 진도가 끝나고 추석을 맞이하였다. 마냥 공부만 하는 것이 아니라 이제 빨리 회사에 들어가 일을 배우고 커리어를 쌓고싶다는 생각이 든다. 하지만 SSAFY에서 배우는 공부량도 만만치 않아서 취업준비와 동시에 공부를 하는 것이 쉽지많은 않다. 당장에 SSAFY개발공부 + 취업준비(면접) + SQLD자격증 + 삼성 A형테스트가 기가막히게 일정들이 겹쳐서 힘들었다. 너무 벌여놓기만 하고 수습하는게 미흡해서 였는지 A형테스트는 쉽다고 생각했음에도 통과하지 못했고, SQLD는 기존에 알고있던 상식 + 벼락치기 2일로 어찌저찌 치긴했는데 점수가 가늠이 안간다. SSAFY개발공부는 면접을 1순위로 했었고 라이브방송을 다시볼 수도 있었기 때문에 후순위로 미뤄두었다. 먼가 한가지에 집.. 2022. 9. 13.
6497. 전력난 (코딩테스트, 백준, 자바) 문제 6497번: 전력난 성진이는 한 도시의 시장인데 거지라서 전력난에 끙끙댄다. 그래서 모든 길마다 원래 켜져 있던 가로등 중 일부를 소등하기로 하였다. 길의 가로등을 켜 두면 하루에 길의 미터 수만큼 돈이 들 www.acmicpc.net 나의 풀이 두 집 사이에 왕래를 하려면 반드시 길을 지나야 하며 길을 지나기 위해서는 불이 켜져있어야 한다. 불이 켜진 길은 거리만큼의 비용이 든다. 모든 집이 왕래가 가능해야 하기때문에 고립되어 있는 집이 없도록 해야 한다. 모든 선에는 비용정보가 있다. -> 모두가 연결되어 고립되지 않도록 하되 선들의 비용합이 최소를 선택 집 수 -1 2022. 8. 29.
연결된 그래프 합쳐졌는지 체크 (feat. 행성 터널 문제) 문제를 풀다보면 엣지와 간선이 주어졌을 때 가중치에 따른 간선선택상황이 올 수 있다. 간선 정보들이 매우 많을 때 적절히 정렬되어 있다고 가정했을 때, 필요없는 간선인지 판단하는 것과, 간선 선택시 상황을 기억하고 있는 정보들을 업데이트를 해야할 것이다. ex) 0 -1 , (2-3, 3-4) 로 연결되어 있었고 1-4간선을 발견하였다. 1-4 연결이 되면 두 집합이 하나로 합쳐졌다고 정보를 수정해야 한다. parent = new int[N]; //parent[i] = i 라고 생각 while (!queue.isEmpty()) { Edge tmp = queue.poll(); if (!isSameParent(tmp.s, tmp.d)) { System.out.println(tmp.s + " " + tmp.d.. 2022. 8. 21.
세그먼트 트리 : 구간별로 비교할 경우 (feat. BOJ : 히스토그램에서 가장 큰 직사각형 ) 세그먼트 트리의 원리 : 연속된 구간의 데이터의 합을 가장 빠르고 간단하게 구할 수 있는 트리 원리는 쉽다. 입새노드를 좌에서 우로 순서대로 배치한다. 트리의 크기는 아무리커도 배열크기의 원소들이 입새노드가 될 수 있으면 된다. 아래 식을 확인해보면 이해할 수 있다. 부모노드는 자식노드의 합산으로 결정되고 부모값이 의미하는 바는 자식노드들의 합산이 된다. 부모노드들은 결국 해당구간의 합산을 기억하고 있으며 필요한 범위를 지정하면 접근하도록 구현하면 완성된다. 편의를 위해 루트노드의 인덱스는 1로 왼쪽 자식은 *2 , 오른쪽 자식은 *2+1 한값을 기억하도록 한다. 코드 : 자바 int h= (int) Math.ceil(Math.log(N)/ Math.log(2)); h = (int)Math.pow(2, .. 2022. 8. 20.
Dockerfile docker-compose.yml Dockerfile : 컨테이너의 설계도 RUN , WORKDIR, CMD 등 활용하여 컨테이너의 기본 설정을 해주는 역할을 한다. 만들고자 하는 프로젝트내에 위치한다 docker build 명령어를 사용하고 도커 파일을 명시하여 사용하게 된다. docker-compose.yml : 다중 컨테이너 애플리케이션을 배포하려는 방법을 정리한 파일 docker-compose up 으로 설정한 내용대로 컨테이너 실행 Dockerfile이 어디에 위치되어있는지, 포트번호는 몇번을 쓸 것인지, 볼륨위치 등 명시하는 파일 Dockerfile은 이미지를 만드는 설계도, docker-compose는 설계도들의 관리자라고 볼 수 있다. 2022. 8. 14.