전체 글 (121) 썸네일형 리스트형 [JAVA] 백준 1238 - 파티 https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 🤔 문제 접근 처음 떠올린 풀이 방법은 N개의 마을에서 파티가 열리는 X번 마을까지의 최소 거리를 구하고 X번 마을에서 각각의 N개의 마을까지의 최소 거리를 구해 더한 뒤, 최소 값들 중 최대 값을 구하는 것이었다. A 마을에서 B마을까지의 최소 거리를 구하기 위해 최단 경로 탐색 알고리즘인 다익스트라 알고리즘을 사용했다. 하지만 위 풀이 방식으로 문제를 풀 경우 우.. Spring 입문 Study - 정적 컨텐츠, MVC, 템플릿 엔진, API방식 ✅ 정적 컨텐츠 정적 컨텐츠란 클라이언트의 요청을 받고 서버에 미리 저장된 HTML, CSS, JS 등의 파일을 그대로 응답해 보여주는 것을 말한다. 모든 클라이언트들의 요청에 대해 동일한 결과를 보여준다. resources 폴더 아래 static에 hello-static.html 파일을 만들었다. 그리고 @SpringBootApplication 어노테이션이 있는 파일을 실행시킨 뒤 http://localhost:8080/hello-static.html 에 접속하면 화면이 뜨게 된다. 정적 컨텐츠를 띄우게 되는 원리는 다음과 같다. 1. 내장 톰켓 서버가 웹 브라우저로 부터 요청을 받는다. 2. springboot가 hello-static 에 관련된 컨트롤러를 확인한다. 3. springboot가 res.. [JAVA] 백준 9465 - 스티커 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 🤔 문제 접근 완전 탐색으로 풀려다가 실패한 문제이다. 스티커를 뗀 부분에서 맵을 벗어나지 않는 한도 안에 상하좌우에 있는 스티커가 같이 떼지는 형식이다. 이때 다음으로 고를 수 있는 스티커의 위치는 현재 뗀 위치의 행이 0인경우 sticker[1][i+1] or sticker[1][i+2] 이고 현재 뗀 위치의 행이 1인 경우엔 sticker[0][i+1] or sticker[0][i.. Spring 입문 Study - Spring 프로젝트 생성, Spring 라이브러리, Spring의 동작 인프런의 김영한 강사님의 강의를 토대로 학습내용을 저장하고 remind 하기 위해 포스팅 한다. ✅ Spring 프로젝트 생성하기 Spring 프로젝트를 생성하는 방법은 다른 프로젝트를 생성하는 것과 약간 다르다. Spring 프로젝트를 생성하는 사이트는 다음과 같다. https://start.spring.io/ 빌드 관리 도구로 Gradle과 Maven을 선택할 수 있는데 요즘에는 대부분 Gradle을 사용한다고 한다. 레거시 프로젝트 같은 경우 아직 Maven을 사용하는 곳도 있다고 한다. Gradle과 Maven에 대한 소개, 차이점은 따로 포스팅할 예정이다. Spring3 으로 업데이트가 되면서 JAVA17을 사용해야 한다. 아마 JAVA 11을 사용했을 때 뭔가 오류 메시지가 출력되었던 것 같다.. [JAVA] 백준 1932 - 정수 삼각형 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 🤔 문제 접근 전체 숫자들의 최대값 정보를 담는 2차원 배열 tree와 원래 숫자의 정보를 담는 2차원 배열 ori를 선언했다. tree.clone으로 ori도 생성을 간단하게 하면 되지 않을까 생각했지만 2차원 배열에 clone메서드를 사용하면 객체들을 담고 있는 주소의 주솟값데이터를 새로 생성해 복사하기 때문에, (2차원 배열에 clone을 사용하면 얉은 복사를 수행, 1차원 배열은 깊은 복사) tree [i][j]의 값이 바뀌면 ori [i][j] 의 값도 바뀌게.. [JAVA] 백준 2156 - 포도주 시식 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 🤔문제 접근 DP 문제인 포도주 시식 문제이다. 문제를 딱 봤을 때, 이전에 풀었던 같은 DP문제인 계단 오르기 문제가 생각났다. 연속해서 3개의 와인을 고를 수 없는 것이나 각 와인을 골랐을 때의 최대 양을 구하는 것이 계단 문제와 같았다. 하지만 다른 점이 있다면, 바로 마지막 와인이 정해져 있지 않다는 것이다. 계단 문제 같은 경우 마지막 계단을 반드시 밟아야 했지만 해당 문제는 그런 것이 없.. [JAVA] 백준 1699 - 제곱수의 합 🤔문제 접근 처음에 점화식을 구하지 못하고 Math.sqrt(N) 을 한 값을 N에서 빼주고 answer+1 해주는 방식으로 단순 반복문으로 해결하려고 했다. 하지만 이 경우는 항의 최소를 구할 수 없는 방법이었다. 어떤 수 N은 N-1보다 작은 제곱수들 중 최소 제곱수들의 합 + 1이라는 규칙을 갖고 있다. 예를 들어 15는 (15-1) 의 최소 제곱수의 합 +1 (15-4) 의 최소 제곱수의 합 +1 (15-9) 의 최소 제곱수의 합 +1 이다. 문제에선 항이 최소일 때를 구하는 것이므로 이 중 최소 값을 구하면 된다. 🚨CODE import java.io.*; import java.util.*; public class Main { public static void main(String[] args).. [JAVA] 백준 6603 - 로또 🤔 문제 접근 dfs를 사용하는 조합 문제였다. 다만 숫자의 자리가 6자리로 고정되어있고 숫자의 구성이 사전 순으로 되어있음을 고려해야한다. 따라서 재귀 호출을 한 횟수가 6일 때 StringBuilder에 append 해주고 사전 순을 고려할 땐 이전에 고른 idx를 파라미터로 넘겨주어 해당 idx+1을 해주도록 했다. 다른 비슷한 문제들 같은 경우 boolean 타입의 visit 배열로 중복체크를 하지만 해당 문제는 어차피 이전에 고른 숫자 idx + 1을 골라주기 때문에 boolean으로 중복체크를 할 필요가 없었다. 🚨CODE import java.io.*; import java.util.*; public class Main { static StringBuilder sb = new StringBu.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음