
분명히 3학년 때 알고리즘 강의를 수강하면서 한번 스쳐갔던(심지어 코드를 전부 암기했었던...) 개념이긴 한데 막상 활용해서 내 코드에 적용하려니 생각이 잘 안나서 다시 한번 정리할 겸 포스팅을 하려고 한다. 1. Heap Heap은 Priority Queue, Heap Sort 등을 구현하기 위해 사용되는 자료 구조로, 데이터의 정렬이나 검색 보다는 우선 순위의 있는 데이터가 무엇인지 알아내고, 삭제하는 데 좀 더 유용한 자료 구조이다. 정보처리기사를 공부하면 계속 나오는 개념 중 하나인 Binary Search에 사용하는 Binary Tree의 형식으로 보통 많이 쓰인다. Binary Heap은 가장 상위 노드의 최대 값을 갖는 Max Heap 과 최소 값을 갖는 Min Heap으로 각각 구현이 가능..

프로세스 순서: 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 처음엔 처음 작업할 문서를 꺼내서 나머지 문서의 중요도와 비교한 뒤 꺼낸 문서의 중요도가 대기 문서 중 한 문서라도 중요도가 밀리면 두 문서를 서로의 위치에 교환하는 작업으로 오해했다. 그렇게 생각하면 중요도가 높은 문서의 위치를 기억하고 있다가 작업 마지막에 맨 앞 문서와 바꿔줘야 했기 때문에 단순 queue로 문제를 푼다고 가정하면 작업이 매우 복잡해지고, 어려워진다. 그래서 실제로 굉장히 오랜시간 삽질하다가 LinkedList는 인덱스의 위치별로 값을 반환..

주어진 엑셀 파일을 이용하여 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..

그렇게 높은 난이도라고 생각하지 않았다. 배포가 가능해지는 날까지의 기간들을 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..

즉, 검색 콘솔 창에서 검색 조건과 내용을 입력하면 제시한 조건에 해당하는 데이터를 추출하여, 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..

상속: 주로 객체에 관련된 개념이며, 상속된 객체는 변수, 메서드, 상수 등을 가질 수 있다. 또한 메서드 재정의는 해도 되고 안해도 되는 선택 사항이다. extends는 중복이 불가능하다. 인터페이스: 주로 기능에 관련된 개념이며, 추상 메서드를 가지며, Implements 받는 객체 내에서 메서드 재정의는 필수 사항이다. Implements는 중복이 가능하다. Override 의 간단 예시: 추상 클래스: 일반 클래스와 인터페이스를 합친 개념이라고 생각하면 된다. 일반 클래스와 같이 생성자를 사용할 수 있지만, 추상 클래스는 다른 객체에서 new 로 인스턴스화 할 수 없다. 즉 일반 클래스의 부모로만 사용되는 클래스라고 볼 수 있다. 추상 클래스는 1. 공통된 필드와 메서드를 통일할 목적 2. 실체클..

상속 : 부모클래스(super class) 로 부터 모든 자원을 물려받는 개념 반드시 extends 키워드를 이용하여 상속받을 부모클래스를 지정. 단, 한번에 하나의 클래스만 상속받을 수 있다. 예) public class A{ } public class B{ } public class C extends A{ // 가능 } public class C extends A, B{ // 불가능 } public class D extends A{ // 가능 } public class E extends D{ // 가능 } 상속이 가능한 부모클래스의 변수 및 메서드 1. 부모와 자식이 같은 패키지에 존재 할 경우 public int a; char c; private 이 붙은 메서드나 변수는 상속 불가능 2. 부모와 자..
1. Comparable과 Comparator? 1) Comparable 인터페이스 - java.lang.compable 패키지에 있는 인터페이스 - 정렬 수행시 기본적으로 적용되는 정렬 기준을 정하는 메소드를 정의해놓는 인터페이스이다. 2) Comparator 클래스 - java.util.Comparator 패키지에 있는 클래스 - 기본 정렬 기준과 다른 기준을 정하여 정렬을 할 필요가 있을 때 사용 2. 사용 방법 1) Comparable 기본적인 Comparable 인터페이스의 사용 방법은 다음 코드와 같이 Comparable을 정렬이 필요한 클래스을 제네릭 타입으로 implements해주고, compareTo 메소드를 오버라이딩하여 정렬 기준을 스스로 정해주면 된다. Code: public cla..
- 맛집
- redux-thunk
- react-native
- AsyncStorage
- Promise
- 정보보안기사 #실기 #정리
- await
- 인천 구월동 이탈리안 맛집
- react
- 이탈리안 레스토랑
- javascript
- 파니노구스토
- Async
- 인천 구월동 맛집
- redux
- Total
- Today
- Yesterday