개인 공부185 [Spring] Spring vs Spring Boot (1) ✍️ 학습 목표 스프링이란? 스프링 부트란? 차이점 📌 스프링이란? 자바 엔터프라이즈 개발을 편하게 만들어주는 가벼운 애플리케이션 프레임워크이다. 이 한 문장이 스프링의 모든 특징을 잘 말해주고 있다. ✔️ 애플리케이션 프레임워크 일반적인 프레임워크는 특정 분야나 한 가지 기술에 특화되어 있다. 애플리케이션 프레임워크는 많은 영역을 포괄하는 프레임워크를 말한다. 스프링은 전 영역을 관통하는 프로그래밍 모델과 각 영역별로 필요로 하는 조건을 채워주는 기술로 개발의 모든 과정을 빠르고 편리하면서 효율적으로 진행할 수 있게 한다. ✔️ 가볍다 단순히 가볍다거나 코드의 양이 적다는 의미가 아니다. 가볍고 단순한 환경에서도 대규모 개발의 고급 기술을 대부분 사용 가능하고 빠르고 간편하게 코드를 작성할 수 있어 유.. 2022. 8. 19. [Python] 백준 1613번 : 역사 https://www.acmicpc.net/problem/1613 1613번: 역사 첫째 줄에 첫 줄에 사건의 개수 n(400 이하의 자연수)과 알고 있는 사건의 전후 관계의 개수 k(50,000 이하의 자연수)가 주어진다. 다음 k줄에는 전후 관계를 알고 있는 두 사건의 번호가 주어진다. www.acmicpc.net 💡 문제 풀이 그래프 이론 중 플로이드-워셜 문제이다. 이 문제에서는 최소 거리를 따지는게 아니라 순서만 따지면 된다. 따라서, 두 사건 a, b에 대해서 a 다음에 b가 오는지만 따지면 되므로 배열에는 참거짓만 저장해준다. ✔️ 느낀 점 pypy로 제출해야 통과가 되서 다른 분의 코드를 확인해봤는데 전적으로 나와 코드가 유사해서 그냥 넘어가야겠다. 💻 코드 import sys input .. 2022. 8. 17. [Java] Java의 클래스 ✍️ 학습할 것 클래스 인스턴스 메서드 생성자 this 📌 클래스 (Class) 클래스는 객체 지향 프로그래밍(OOP)에서 사용되는 객체를 정의해놓은 것으로 인스턴스를 생성할 때 쓰인다. 다시 말하면, 객체의 속성과 기능을 하나로 묶어놓은 틀이다. Java에서 클래스는 필드, 생성자, 메서드로 구성된다. 필드(속성) : 객체의 데이터를 저장하며 멤버 변수라고도 부른다. 생성자 : 필요한 정보를 인수로 받아 객체를 초기화한 후 반환하는 역할이다. 메소드 : 객체의 기능이다. 호출 시 정의된 코드를 수행한다. class 키워드로 클래스를 정의하고 앞에 접근 지정자를 두어 외부에서 접근할 수 있는 범위를 설정한다. // Example public class Person { // 필드(멤버변수) private .. 2022. 8. 17. [Python] 백준 11404번 : 플로이드 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 💡 문제 풀이 그래프 문제 중 플로이드-워샬 알고리즘 문제이다. 플로이드-워샬 알고리즘을 구현하면 된다. 입력값 중에 목적지가 같은 버스가 있어서 edge들을 입력받을 때 더 작은 값으로 최신화해야 한다. ✔️ 느낀 점 플로이드-워샬 알고리즘 자체는 어렵지 않지만 문제 조건인 "갈 수 없을 때 0으로 출력하라."와 "같은 목적지의 버스가 있음."을 놓쳐서 계속 틀려서 화가 났다 ^^. 문제를 잘 .. 2022. 8. 17. TIL : 플로이드-워샬(Floyd-Warshall) 알고리즘 (8) 💻 알고리즘 📌 플로이드-워샬 알고리즘이란? 그래프 이론 중 하나로 다익스트라 알고리즘과 비슷하게 노드와 노드 사이의 최단거리를 구하는 알고리즘이다. 이 알고리즘의 특징과 동작 원리는 다음과 같다. ✔️ 특징 모든 노드 간의 최단거리를 구한다. 따라서 2차원의 공간이 필요하다. 음의 비용을 가지는 그래프에서도 사용할 수 있다. O(n^3)의 시간복잡도를 가진다. (3중 반복문) 다이나믹 프로그래밍의 성질을 가진다. ✔️ 동작 원리 거쳐 가는 노드를 기준으로 알고리즘이 수행한다. a → b의 비용과 a → k → b의 비용을 비교해서 더 작은 비용으로 최신화한다. INF = int(1e9) # 정점과 간선 개수 입력 vertex, edge = map(int, input().split()) # 그래프 초기화.. 2022. 8. 17. [Python] 백준 1916번 : 최소비용 구하기 https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 💡 문제 풀이 다익스트라 그래프 이론 문제이다. 기본적인 다익스트라 알고리즘을 구현하면 된다. ✔️ 느낀 점 💻 코드 import sys, heapq input = sys.stdin.readline INF = int(1e9) # 도시의 개수(vertex), 버스의 개수(edge) 입력 N = int(input()) M = int(input()) # 입력 받은 값 .. 2022. 8. 17. 이전 1 ··· 15 16 17 18 19 20 21 ··· 31 다음