![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bgal6m/btq2CDwqg7A/l6rituUydqMSzXuDREKSF0/img.png)
우선 본 카테고리에 있는 모든 포스팅은 Apache Tomcat 8.0 Server와 HTML5를 기반으로 실습을 진행하며 포스팅할 예정이다. JSP를 사용하는 프로젝트는 Dynamic Web Project이므로 일반 Java Project와는 다른 형식이기 때문에 아래와 같이 선택하여 프로젝트를 생성해야 한다. 또한 Dynamic Web Project의 이름은 후에 서버를 구동시켰을 때, 주소창에 직접적으로 명시가 되므로 마구잡이로 짓는 것은 피하는 게 좋다. 기본적인 HTML 태그나 기타 메서드 등은 포스팅을 진행하면서 하나하나 정리해서 올릴 예정이며, 이번 포스팅은 아주 기초적인 태그와 JSP파일에 JAVA코드를 작성하는 문법을 다룰 것이다. 1. 문법 1) : 해당 페이지의 Contents Typ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bopDmK/btq2CFnsA3x/pUQkVLsDxAQHfv2KlBpeik/img.png)
드디어 Web으로 왔다... (항상 독학으로는 한계가 있던 부분인데... 이번 기회에 제대로 각 잡고 공부해보자!) 앞으로 거의 대부분의 웹 관련 실습들은 Apache Tomcat Server로 사용할 예정이며, 나는 사용하고 있는 java 버전에 맞춰 Tomcat 8.0으로 진행할 예정이다. 우선, Web 프로젝트를 진행하기에 앞서 Tomcat Server 설치나 이클립스 인코딩 설정은 필수적으로 해줘야 한다. 1. Apache Tomcat Server 8.0 설치 톰켓의 경우 공식 홈페이지에서 Release 별로 다운로드할 수 있으니 따로 첨부하지는 않겠다. 그러나, 자신의 Java 버전을 생각하여 그에 맞는 버전의 톰캣을 설치해야 나중에 오류로 실행이 안 되는 불상사를 막을 수 있다. exe 파일을..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/b09kLU/btq2tmuNt9U/bVLKHtfzJ8knE3iNkKltBK/img.png)
오늘 아침도 기분 좋게...? 문제 풀이로 시작하려 했는데.... 이게 머선 129... LV2 문제가 존재하지 않는다....(뭐야...내 LV2 돌려줘요...) 아직 Greedy 활용 문제들이 많이 어려워서 LV2 문제 딱 하나만 더 풀었으면 좋겠는데... 아쉽지만, 그래도 할건 해야지... 바로 문제로 들어가자 즉, 예제의 입력을 그림으로 나타내면 다음과 같다. 굉장히 익숙한 그림이다. 사실, 어제 이 문제를 풀다가 도저히 안 되겠어서 Union-Finf, Kruskal 알고리즘을 공부하고 왔다... 하하 LV3 문제들은 보통 이런 선행학습이 꼭 필요한 경우들이 많아서...ㅠ 아무튼 오래 생각하지 않아도, 이 문제는 그냥 어제 코드를 짰던 Kruskal알고리즘을 활용하면 어려울 거 하나도 없이 풀린다..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/UTqlj/btq2u2wgq5v/uKWmkSKW9HUsHmzmjnD5o1/img.png)
Kruskal? Kruskal 알고리즘은 Greedy 기법을 이용하여 각 가중치를 간선에 할당한 그래프(어떤 비용을 가지고 있는 간선으로 이루어진 그래프)의 모든 정점을 최소 비용으로 연결하는 최적의 해를 구하는 데 사용하는 알고리즘이다. 글로만 설명하면 머리만 아프니, 바로 그림과 함께 예제를 보자. 위와 같이 간선과 노드, 그리고 각 간선이 가지는 비용으로 이루어진 그래프가 주어졌을 때, 우리의 임무는 각 노드들을 최소한의 비용으로 모두 연결하는 것이다. 그러나 여기서 각 연결은 서로가 맞물리는 상황(사이클)이 발생하지 않아야 한다. Kruskal 알고리즘의 기본적인 원리는 다음과 같다. 1. n개의 노드가 모두 연결되는 제일 작은 경우의 수는 n-1이다. 2. 비용 기준으로 오름차순 정렬하여 제일 ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/dMEoWQ/btq2uWI6h5u/FblDBwfOklmV2faz0TRyQ1/img.png)
Union-Find 알고리즘은 합집합을 찾는다는 의미를 가진 그래프 알고리즘이며, Disjoint Set(서로소) 알고리즘이라고도 부른다. 구체적으로 여러 개의 수가 존재할 때, 각 수에 노드를 매긴 후, 현재 선택한 두 노드가 서로 같은 그래프에 속하는지 판별하는 알고리즘이다. Union-Find 알고리즘을 이용하여 다양한 고급 알고리즘을 활용할 수 있으니, 심화적인 그래프 알고리즘을 다루기 전에 반드시 짚고 넘어가야 하는 알고리즘이다. 위와 같이 무작위 순서로 연결되어 있는 수의 집합을 순서대로 연결하기 위해서는 각 숫자들은 자신보다 작은 수를 자식으로 가지고, 큰 수를 부모 노드로 가질 필요가 있다. 이러한 노드의 순서는 두 개의 배열로 나타낼 수 있다. Array1: 각 수의 노드를 가지는 배열 ..
1. DUAL 테이블: 산술 연산 결과를 출력하기 위한 dummy 테이블이다. select 24*60 from dual; select * from dual; select SYSDATE from dual; 2. 숫자 관련 함수 1) ABS(n): 절대값을 구하는 함수 SELECT ABS(-1234) FROM DUAL; ---> 1234 2) FLOOR(n): 소수점 이하를 버리는 함수 SELECT FLOOR(-1234.123) FROM DUAL; ----> -1234 3) ROUND(n): 소수점 이하를 기반으로 반올림하는 함수 SELECT ROUND(-1234.123) FROM DUAL; ----> -1234 4) TRUNC(n, 자를 자리수): 특정 자리수에서 잘라내는 함수 SELECT TRUNC(-1..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/dYjHbP/btq2oTy7UyN/0E9LKSM4zGK9GVAFRx32fk/img.png)
어릴 때 닌텐도 DS로 플레이했던 레이튼 박사 시리즈가 생각이 나는 문제...ㅋㅋ 아마 배열의 첫 인자부터 차례차례 남은 인자들과 합쳐서 limit를 넘는 순간 타고 빠지게끔? 작성하면 풀릴 거 같다. package com.choonham; class Solution { public int solution(int[] people, int limit) { int answer = 0; int sum = 0; int count = 0; for (int i = 0; i < people.length; i++) { if (people[i] != 0) { sum += people[i]; people[i] = 0; if (i != people.length - 1) { for (int j = people.length -..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bbgGf8/btq2plIyDao/rxXkUjnTRK8G5FA5y9IKzk/img.png)
1. Sequence? 시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체, 보통 PK값에 중복값을 방지하기위해 사용한다. 2. Sequence의 기본 형식: CREATE SEQUENCE sequence_name [START WITH n] /* 시퀀스의 시작 번호 */ [INCREMENT BY n] /*증감치 */ [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}] /* 메모리상의 시퀀스 값을 관리하도록 하는 것, 기본 값은 20 */ /* NOCACHE 는 원칙적으로 메모리 상에서 시퀀스를 관리하지 않음 */ 3. Sequence 객체 확인: SELECT SEQ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/t8gQt/btq2idxCSPy/WQ4xKhVshqk92mSNYtAKV0/img.png)
1. 합집합 UNION: 단순히 두 SELECT 연산을 합치는 것으로 중복을 허용하지 않는 일반 UNION과 중복 값을 포함하는 UNION ALL이 있다 ○Student Table: 1) UNION: 단순히 똑같은 STUDENT 테이블에서 id만 가져와 조인했을 경우, 동일 테이블의 합집합이므로, 하나의 테이블과 같은 결과 값이 나온다. 2) UNION ALL: UNION ALL 연산을 할 경우 중복 값을 포함하여 동일한 자료가 2개씩 들어있는 테이블이 결과 값으로 나오게 된다. 2. 교집합(INTERSECT): 말 그대로 두 SELECT 연산에서 동일한 부분만 추출하는 연산자이다. 예시로, Student Table과 Department Table의 교집합을 구해보면, ○Department Table: ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/b1QAC3/btq2hI51vvn/zjz0aLza59bexKeHLv7eCk/img.png)
엥...이거 완전...? 그냥 완전 탐색 기법을 사용해서 숫자 2자리를 제외하고 나머지를 사용하여 수열을 뽑아내면 되는 문제 아닌가..? 그래서 이전에 사용했던 조합을 뽑는 알고리즘을 그대로 가져와 조합을 뽑고, Integer 리스트에 넣어서 정렬하여 가장 큰 수를 뽑아내는 방식으로 코드를 작성했는데, package com.choonham; import java.util.ArrayList; import java.util.Collections; import java.util.List; class Solution { private List strArray = new ArrayList(); public String solution(String number, int k) { String answer = ""; ..
- AsyncStorage
- javascript
- await
- redux
- 인천 구월동 맛집
- 맛집
- 파니노구스토
- 정보보안기사 #실기 #정리
- 인천 구월동 이탈리안 맛집
- react
- redux-thunk
- react-native
- 이탈리안 레스토랑
- Async
- Promise
- Total
- Today
- Yesterday