목록전체 글 (78)
우보천리 개발
패스트캠퍼스 '스프링의 정석 - 남궁성과 끝까지 간다'를 들으며 정리한 내용 더 많은 내용을 배운다면 더 업데이트 현재는 입문자... 원격 프로그램 실행 원격에서 프로그램 실행하기 위해서는 1. 프로그램을 등록 2. URL과 연결하여 메소드 호출 할 수 있게 해줘야한다 @Controller 애너테이션을 통해서 프로그램을 원격 호출 할 수 있도록 등록한다. @RequestMapping은 메소드를 연결해서 호출할 수 있도록 한다. Java에서 static이 아닌 메소드는 객체 생성 없이 사용할 수 없는데 @RequestMapping이 붙은 메소드는 static이 안붙어도 호출이 된다 그 이유는 Tomcat 내부에서 객체를 생성해주기 때문이다 @RequestMapping("/hello") private voi..
Stack과 Queue는 배열 혹은 연결 리스트로 구현할 수 있지만 배열로 구현하였다. Stack은 Java에서 클래스 형태로 제공하지만 Queue는 인터페이스로 제공하기 때문에 구현을 해줘야한다. [Stack] Stack은 리스트의 특수한 형태로 데이터를 리스트의 맨 앞, 맨 뒤에서만 작업할 수 있다. 맨 앞에서는 삽입, 맨 뒤에서는 삭제만 할 수 있는 Last in First Out 구조로 되어있다. 즉 제일 먼저 넣은 원소는 제일 마지막에 꺼낼 수 있다. [Implemented Methods] push : 데이터를 삽입 pop : 데이터를 삭제 peek : 맨 위에 있는 데이터를 읽기 isEmpty : 스택이 비어있는지 확인 size : 스택의 크기를 반환 [생성자] public class MySt..
LinkedList 는 Node 객체 여러개를 이용해서 Node 끼리 연결되어 있는 자료구조이다. Node에는 Data와 다음 노드의 주소 Reference를 갖고 있기 때문에 배열과 다르게 연속적인 메모리에 할당되어 있지 않아도 된다. Java 에서는 List 인터페이스를 이용해 LinkedList를 구현하고 있다. LinkedList는 단방향, 양방향, 원형 연결 등이 있지만 이번에는 Single LinkedList를 구현해보겠다(List 인터페이스를 구현하지 않고) https://visualgo.net/en/list Linked List (Single, Doubly), Stack, Queue, Deque - VisuAlgo VisuAlgo is generously offered at no cost ..
"자바의 정석 P.367를 바탕으로 공부" 책의 예제에서 Buyer 클래스와 Product 클래스를 만들어서 Buyer이 물건을 구매하는 코드를 짜보는 예제가 있다. 여기서 더 나아가서 객체지향적인 코드를 공부해보기 위해서 여러가지 시도를 해보았다. 우선 예제의 코드다 class Product { int price, bonusPoint; Product(int price) { this.price = price; bonusPoint = (int)(bonusPoint / 10.0); } Product() { price = 0; bonusPoint = 0; } } class Tv extends Product { TV() { super(100); } public String toString() { return "..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net package Chapter1; import java.util.*; public class BJ11286 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); PriorityQueue q = new PriorityQueue(new Comparator..
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net package Chapter1; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class BJ2164 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); Queu..
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net package Chapter1; import java.util.Scanner; import java.util.Stack; public class BJ1874 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = s..
package ThisCodingTest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; // p.99 public class CT4 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.n..
package ThisCodingTest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; // p.96 public class CT3 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int ..
package ThisCodingTest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; // p.92 public class CT2 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int ..