https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 풀이 0) 변수 설정 N : map의 크기 fuel : 연료 map : 지도 (N by N) tr, tc : 택시의 위치 distanceMap[r][c] : 현재 택시 위치에서 (r,c) 까지의 거리. 못 가는 경우가 있으므로 -1로 초기화 한다. isVisited[r][c] : (r,c) 위치를 방문했는지 체크 1) 입력값을 담을 Passenger 클래스를..
https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 풀이 0) 상어의 인덱스를 담을 map_idx[][]와 상어의 크기를 담을 map_z[][]를 생성하고 입력값을 기반으로 초기화한다. 1) 입력받은 상어들을 List에 담는다. Shark 클래스는 r, c, s, d, z, isDead로 이루어져 있다. 1-1) 상어는 1번부터 존재한다. List의 인덱스를 상어의 번호로 저장하기 위해 죽은 상어를 List에 최초 한번 add ..
https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 풀이 1) PriorityQueue 를 2개 사용한다. (최대힙, 최소힙) 2) 입력받은 숫자를 하나씩 넣는다. 2-1) 맨 처음 maxHeap이 비어있을경우 maxHeap에 우선적으로 넣는다. 2-2) 들어올 숫자가 maxHeap의 peek 값보다 작으면 무조건 maxHeap에 넣는다. 만약 maxHeap의 크기가 minHeap의 크기 + 2 보다 커지면 maxHeap의 peek..
https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 풀이 1) 구간 합 배열(sum[])을 만든다. sum[i] : 0 부터 i 까지의 합. 2) a가 1 일 경우 2-1) 변경된 숫자의 번호와 차이값을 List에 저장한다. (인덱스, c - arr[i]) 3) a가 2 일 경우 3-1) 숫자 변경을 배제한다면 b~c 의 구간합은 sum[c] - sum[b-1] 3-2) list를 순회하며..
https://www.acmicpc.net/problem/1113 1113번: 수영장 만들기 지민이는 수영장을 만들려고 한다. 수영장을 만들 곳의 크기는 N*M이고, 각 칸은 직육면체이다. 따라서, 각 칸의 직육면체의 높이가 쓰여 있는 다음과 같은 땅을 생각할 수 있다. 16661 61116 16661 이 www.acmicpc.net 풀이 1) 주어진 수영장 벽의 최대 높이 maxHeight 구하기 2) 1부터 maxHeight 까지 for문을 돌려서 수영장 벽의 높이와 같은 노드를 찾아낸다. 3) 해당 노드의 좌표에서 bfs 탐색을 한다. 3-1) 물은 위에서 아래로만 흐른다. 따라서 현재 높이 h 보다 작거나 같은 노드를 탐색한다. 3-2) 이때 지나간 경로를 Queue를 통해 저장해 놓는다. (pa..
https://www.acmicpc.net/problem/1035 1035번: 조각 움직이기 최대 5개의 조각이 있는 5×5 크기의 보드가 있다. 김지민은 조각을 적절히 움직여서 모든 조각이 연결 요소를 이루게 하려고 한다. 즉 상하좌우로 인접한 조각을 모두 연결했을 때, 모든 쌍의 조 www.acmicpc.net 풀이 0) 주어진 조각의 총 개수를 구한다. 1) 조각의 총 개수로 만들수 있는 모든 경우를 구한다.(DFS) 2) 위의 경우 중 모든 조각들이 이어져 있는 경우를 구한다. 2-1) 임의의 조각 하나에서 BFS. (이어진 조각들의 개수 == 총 조각의 개수) 인 경우 모든 조각이 이어져있는 것이다. 3) 원본에서 2)의 경우로 옮기는 최소 비용을 구한다. 3-1) 이때 이동의 기준은 가장가까운..
서론 평소 아이패드로 JumpDesktop을 사용하여 카페나 회사에서 집PC를 원격제어해 사용하곤 했다. 이를 위해 집밖을 나설때마다 PC 전원을 키고 나간다는 번거로움이 있었고 어떤 날에는 PC전원키고 나가는 것을 까먹어서 원격제어를 하지 못하는 상황이 생겼다. 그러다 문득 외부망에서 공유기를 통해 PC 전원을 켤 수 있다는것(Wake On Lan)을 알게되었다. 공유기를 1대만 거칠 경우 wol 설정은 구글링하면 자세히 나온다. 하지만 우리집 네트워크 구조 같이 공유기가 2대 이상일 경우 wol을 설정하는것은 검색해도 잘 나오지 않았다. 오늘의 포스트는 이중 공유기 환경에서 wol을 설정하기 위해 삽질한 과정을 써보려 한다. 본론 네트워크 구조 먼저 현재 우리집의 네트워크 구조이다. PC에서 인터넷에..
1. 제어의 역전 IoC (Inversion of Control) - 예제 프로젝트를 개발하면서 AppConfig를 사용하지 않았을때, 클라이언트 구현 객체가 스스로 필요한 구현 객체를 생성(new)하고, 연결하고, 실행했다. 즉, 구현 객체가 프로그램의 제어 흐름을 스스로 조종한 것이다. 솔직히 개발자 입장에서는 매우 자연스러운 흐름이다. - 하지만, AppConfig의 등장 이후, 구현 객체는 오직 자기가 맡은 역할을 실행하는 것에만 집중한다. 프로그램의 제어는 이제 AppConfig가 하는것이다. - 이렇듯 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)이라고 한다. 2. 의존관계 주입 (Dependency Injection) - 의존관계는 정적인 클래..
- Total
- Today
- Yesterday
- 객체지향
- map
- react native
- 자바
- 백트래킹
- Spring Boot
- S2
- 구현
- laugh4mile
- 알고리즘
- 백준
- 코딩새내기
- Spring
- BFS
- 시뮬레이션
- g4
- 리액트 네이티브
- DFS
- react
- PriorityQueue
- 다익스트라
- S3
- 문자열
- SWEA
- java
- 현꾸라지
- 우선순위큐
- 그리디
- G5
- 리액트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |