![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bHIaT9/btq1pzH1Z95/AsB2wi6Xh8fol6AteyRxk1/img.png)
Multi Thread를 구현하기 위한 run() 메소드는 Runnable 인터페이스가 가지고 있으며, 이 Runnable 인터페이스를 구현받은 Thread 클래스를 이용하여 구현할 수도 있다. 즉, 간단하게 구조를 보면.. run() 메서드: public interface Runnable{ public void run(); } Thread 클래스: public class Thread implements Runnable{ public Thread(){ } @Override public void run() { } } 위와 같이 구성되어 있으므로 Thread 클래스를 상속 받거나, Runnable 인터페이스를 구현 받는 방식으로 run() 메서드를 구현할 수 있다는 것이다. ThreadClass를 상속 받는..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/cLBNvw/btq1nI5Oku0/rPVWPUXcxPIIBkQk8wqvk0/img.png)
그 동안 여러 코딩 테스트, 알고리즘 문제를 풀면서 다양한 자료 구조를 사용하긴 했지만, 따로 정리한 내용이 부족한 것 같기도 하고, 오늘 강의에서 Java의 Collection 에 있는 자료 구조를 전부 설명해 주시길래 정리해보려고 한다. 1. ArrayList: 워낙 기본적인 내용이기도 하고 많이 사용해서...자세한 내용은 Pass. package com.choonham.list; import java.util.ArrayList; import java.util.Iterator; public class ArrayListTestClass { public ArrayListTestClass() { // TODO Auto-generated constructor stub } public static void a..
DB와 프로젝트를 연동하기 위해서는 드라이버나 사용자 정보를 가지고 있는 properties 파일이 필요하다. 기본적으로 properties 파일은 연동 작업을 할 클래스와 같은 위치에 생성하는데, 같은 위치에 있는 properties 파일을 절대 경로로 읽게끔 코드를 작성하면 그 코드는 클라이언트 측에서 사용할 수 없기 때문에 반드시 상대 경로로 읽어와야 한다. 우선, properties 파일의 예제는 다음과 같다. 더보기 driver = oracle.jdbc.OracleDriver url = jdbc.oracle:thin@localhost:1521:orcl username = scott password = tiger 그리고, 데이터베이스를 연동하는 작업을 하는 클래스는 다음과 같이 정의하여 상대 경로..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/Fd3xM/btq1e7FDGQo/hWcjOznqsz8SViy9tiWZLK/img.png)
계산식: 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 개인적으로 이렇게 테스트 케이스를 하나만 주는 경우를 굉장히 싫어한다. 테스트 케이스'만' 성공했을 때 그 반례를 찾기가 너무 시간이 오래걸려서 잘못하면 진짜 몇시간씩 진전도 없이 날리는 경우가 생기기 때문에.... 이 문제는 어제 포스팅에서 정리한 Heap이나 Priority Queue만 잘 활용하면 별 문제 없이 해결할 수 있는 문제이다. 우선 받은 스코빌 지수 배열을 모두 Priority Queue에 저장하여 insert와 동시에 스코빌 지수가 낮은 순으로 자동 정렬될 수 있게 만들어 주고, 스코빌 지수가 낮은 두 음식을 섞을 함수를 따로 만들어 저장해주면 끝! 사실 자료..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/PvgTX/btq1e7SoAtg/2AAUqvJpGJEdJpMu2xp0u0/img.png)
분명히 3학년 때 알고리즘 강의를 수강하면서 한번 스쳐갔던(심지어 코드를 전부 암기했었던...) 개념이긴 한데 막상 활용해서 내 코드에 적용하려니 생각이 잘 안나서 다시 한번 정리할 겸 포스팅을 하려고 한다. 1. Heap Heap은 Priority Queue, Heap Sort 등을 구현하기 위해 사용되는 자료 구조로, 데이터의 정렬이나 검색 보다는 우선 순위의 있는 데이터가 무엇인지 알아내고, 삭제하는 데 좀 더 유용한 자료 구조이다. 정보처리기사를 공부하면 계속 나오는 개념 중 하나인 Binary Search에 사용하는 Binary Tree의 형식으로 보통 많이 쓰인다. Binary Heap은 가장 상위 노드의 최대 값을 갖는 Max Heap 과 최소 값을 갖는 Min Heap으로 각각 구현이 가능..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/JQ7CO/btq090z5DVP/PsdGbIqkDA7bN5YndZzU0K/img.png)
프로세스 순서: 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 처음엔 처음 작업할 문서를 꺼내서 나머지 문서의 중요도와 비교한 뒤 꺼낸 문서의 중요도가 대기 문서 중 한 문서라도 중요도가 밀리면 두 문서를 서로의 위치에 교환하는 작업으로 오해했다. 그렇게 생각하면 중요도가 높은 문서의 위치를 기억하고 있다가 작업 마지막에 맨 앞 문서와 바꿔줘야 했기 때문에 단순 queue로 문제를 푼다고 가정하면 작업이 매우 복잡해지고, 어려워진다. 그래서 실제로 굉장히 오랜시간 삽질하다가 LinkedList는 인덱스의 위치별로 값을 반환..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bUqEkG/btq08wdnZXG/I6hT0deoVleGWJCne3N8y0/img.png)
주어진 엑셀 파일을 이용하여 1번부터 3번까지 문제에 대한 정답을 HTML 파일로 만들어 출력하는 프로젝트이다. 각 인구의 합계는 개별 데이터를 가져와서 합해주는 연산을 해주면 되니, 총 7개의 열만 가져와 작업을 했다. ReadExcel 메서드: @Override public void excelReader(String uri) { File file = new File(uri); Workbook wb = null; ArrayList tempArray = new ArrayList(); try { wb = Workbook.getWorkbook(file); Sheet sheet = wb.getSheet(0); Cell cell = null; int n = 4; while (true) { try { for (i..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/el2lgo/btq03FV48Y2/SEX3KhV2nLr4VKM22s9zHK/img.png)
그렇게 높은 난이도라고 생각하지 않았다. 배포가 가능해지는 날까지의 기간들을 Queue에 넣고 다음 작업의 기간과 비교하며 해당 작업을 빼내고 day에 배포한 기능의 수를 더해주는 방식으로 코드를 짰다. Code: package com.choonham; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; class Solution { public ArrayList solution(int[] progresses, int[] speeds) { ArrayList answer = new ArrayList(); ArrayList list = new ArrayList(); int n = 0; int days = 0; int..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/leDas/btq0ZLWpaic/VSfzkefeN15mrR0Kf1fdm1/img.png)
즉, 검색 콘솔 창에서 검색 조건과 내용을 입력하면 제시한 조건에 해당하는 데이터를 추출하여, excel파일과 HTML 파일로 저장하라는 문제다. 첫 구현은 1. 데이터를 한글로 변환 2. 조건이 2개 이상일 때 두 조건의 and연산 을 제외하고 잘 구현을 시켰으나, 이 두가지가 정말 시간이 많이 들어가는 작업이었다. 알고 있는 검색 알고리즘을 어떻게 해야 효율적으로 사용할 수 있을 지 잘 생각이 안나서, 그냥 죄다 일일이 비교하여 검색을 진행하였다. 우선, 1. 데이터를 한글로 변환 이 작업은 무한 else if문을 사용하여 구현하려고 했으나 강사님이 정말 효율적인 방법을 제시해주어 그걸 사용하였다. Code: package com.choonham.util; public class EnglishToHa..
API를 사용하기 위해 필요한 사전 지식 엑셀 파일 쓰기 파일 경로 지정 : File fname=new File("data.xls"); 사용할 엑셀 파일 생성 : WritableWorkbook wb=Workbook.createWorkbook(File 객체); 엑셀 파일내에 시트 생성 : WritableSheet s1=WritableWorkbook.createSheet("이름", index); 라벨 생성 : Label label=new Label(열번호, 행번호, "내용"); 시트에 라벨 적용 : WritableSheet.addCell(Label 객체); 엑셀 파일 읽기 파일 경로 지정 : File fname=new File("data.xls"); 엑셀 파일 객체 얻기 : Workbook wb=Work..
- redux-thunk
- javascript
- 인천 구월동 이탈리안 맛집
- 인천 구월동 맛집
- Async
- react-native
- AsyncStorage
- await
- react
- 맛집
- 정보보안기사 #실기 #정리
- redux
- 이탈리안 레스토랑
- Promise
- 파니노구스토
- Total
- Today
- Yesterday