[백준/Java] 18111 - 마인크래프트
·
코딩테스트/백준
https://www.acmicpc.net/problem/18111문제풀이주어진 배열 값에서 높이 최소와 최대를 찾고그 사이에 있는 높이를 모두 비교해서 최소 시간을 구하면 된다주의할 점은 블럭의 개수가 음수가 돼버리면 다음 반복문 부터는 계속 음수가 나오므로처음 음수가 나왔을 때 반복문을 빠져나가는 것이 시간을 줄일 수 있다코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static int[][] arr; public static void main(String[] args) throws Exception { BufferedReader br = ..
[백준/Java] 11724 - 연결 요소의 개수
·
코딩테스트/백준
https://www.acmicpc.net/problem/11724문제풀이bfs로 해결하는 대표 문제인 것 같다정점을 입력받아서 서로 연결해주고방문하지 않은 노드일 때만 bfs를 호출하면bfs를 호출한 횟수가 연결 요소의 개수가 된다코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static int N; static int[][] arr; static boolean[] visited; static Queue queue; static int count; public static void main(String[] args) throws Ex..
[Spring MVC] 웹 애플리케이션 이해
·
Spring
웹은 HTTP 기반으로 이루어져 있다.클라이언트 → 서버 or 서버 → 클라이언트로 데이터를 전송/응답할 때 HTTP라는 프로토콜 기반으로 동작한다.모든 것이 HTTPHTTP 메시지에 모든 것을 전송HTML, TEXTIMAGE, 음성, 영상, 파일JSON, XML (API)거의 모든 형태의 데이터 전송 가능서버 간에 데이터를 주고 받을 때도 대부분 HTTP 사용웹 서버(Web Server)HTTP 기반으로 동작정적 리소스 제공, 기타 부가기능정적(파일) HTML, CSS, JS, 이미지, 영상예) NGINX, APACHE웹 애플리케이션 서버(WAS)HTTP 기반으로 동작웹 서버 기능 포함 + (정적 리소스 제공 기능)프로그램 코드를 실행해서 애플리케이션 로직 수행동적 HTML, HTTP API(JSON)..
[백준/Java] 11279 - 최대 힙
·
코딩테스트/백준
https://www.acmicpc.net/problem/11279문제풀이자바의 우선순위 큐를 사용하는데 Collections.reverseOrder()를 넣어주면 된다코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; StringBuilder sb = new S..
[백준/Java] 2805 - 나무 자르기
·
코딩테스트/백준
https://www.acmicpc.net/problem/2805문제 풀이주어진 나무 길이에서 M을 만족하는 길이를 계속 탐색해야 하기 때문에 이분 탐색으로 해결해야 겠다고 생각했다절단기 높이의 최대와 최소를 찾으면서 그 중간값으로 비교를 한다절단기 높이로 자른 나무 길이 총합이 M 보다 작으면 -> 절단기 높이를 너무 길게 잡은 것이므로 탐색 범위의 상한을 줄여줌max = mid절단기 높이로 자른 나무 길이 총합이 M 보다 크거나 같으면 -> 절단기 높이가 가능한 범위 내이지만 높이를 최대로 잡고 싶으므로 탐색 범위의 하한을 늘려줌min = mid + 1최종 출력은 Upper Bound 방식으로 찾았으므로, min을 출력하는데, min은 조건을 만족하는 가장 큰 값보다 1 큰 위치에서 멈추므로 -1 한..
[백준/Java] 2630 - 색종이 만들기
·
코딩테스트/백준
https://www.acmicpc.net/problem/2630문제풀이주어진 정사각형을 계속 4분할 해야하므로 분할 정복을 활용해야 한다색종이가 모두 같은 색이면 더 이상 자르지 않고 총 개수를 구한다다른 색이라면 (현재 사이즈 / 2)로 4등분한다1, 2를 재귀적으로 호출한다코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static int[][] arr; static int blue = 0; static int white = 0; public static void main(String[] args) throws Exception { ..
[백준/Java] 1654 - 랜선 자르기
·
코딩테스트/백준
https://www.acmicpc.net/problem/1654문제풀이순차적으로 탐색하면 시간 초과가 발생한다. 이분 탐색으로 해결해야 한다랜선의 최대 길이를 탐색 대상으로 설정하고 탐색 범위를 절반씩 줄여나가며 답을 찾아야 한다탐색 범위 설정: 최소 1cm 부터 가장 긴 랜선의 길이까지중간값(mid) 설정: 탐색 범위의 중간 길이로 모든 랜선을 잘라봄개수 확인, 범위 조절:잘라서 나온 랜선 개수가 N보다 적다면 너무 길게 자른 것이므로 탐색 범위의 상한(max)을 줄인다잘라서 나온 랜선 개수가 N보다 많거나 같다면, 가능한 길이지만 더 길게 자를 수도 있으므로 하한(min)을 높인다min과 max가 교차할 때까지 반복코드import java.io.BufferedReader;import java.io...