
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) 이때 이동의 기준은 가장가까운..

전개 1) 백준 17135 캐슬 디펜스를 풀던 도중 복사된 List원소를 변경했을 때, 원본 List의 원소가 동시에 변경이 되는 일이 발생. 2) 그로인해 깊은 복사와 얕은 복사의 차이에 대하여 더 자세하게 정리해야 할 필요성을 느낌. 3) 나아가 자바에서 깊은 복사를 하려면 어떤식으로 접근해야하는지 알아보기. 얕은 복사 (Shallow Copy) 1) 주소값을 복사한다. 참조하는 실제값이 같다. 복사본의 변경이 원본에 영향을 미친다. 깊은 복사 (Deep Copy) 1) 실제값을 새로운 메모리 공간에 복사한다 (원본이 참조하는 객체까지 복사한다.). 실제값이 다르다. 복사본의 변경이 원본에 영향을 미치지 않는다. 예시 코드 package com.baekJoon; import java.io.Buffer..

https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net 풀이 1) 후보는 최대 100명이므로 int형 배열 student[100] 을 만든다. 2) 투표지를 개봉할 때마다 리스트를 탐색하여 해당 후보가 있을경우와 없을경우로 나눈다 2-1) 해당 후보가 있을경우 (student[i] > 0) 리스트 값을 갱신한다. 2-2) 해당 후보가 없을경우 list의 크기가 사진틀의 개수보다 작을경우와 클 작지 않을 경우로 나눈다. 2-2-1) 작을 경우 ..
- Total
- Today
- Yesterday
- map
- 알고리즘
- 리액트 네이티브
- 현꾸라지
- react
- G5
- BFS
- react native
- g4
- laugh4mile
- S2
- 자바
- SWEA
- 코딩새내기
- 객체지향
- 백트래킹
- 리액트
- 우선순위큐
- DFS
- 시뮬레이션
- S3
- Spring
- java
- PriorityQueue
- 다익스트라
- Spring Boot
- 문자열
- 구현
- 백준
- 그리디
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |