Java
-
[프로그래머스] 보석 쇼핑(08.22)algorithm/프로그래머스 2020. 8. 22. 17:56
문제 https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 접근법 처음에는 이중 포문을 사용해서 풀었는데 역시나 시간 초과가 났다. 고민을 오랫동안 했는데도 풀지 못해서 결국 다른 코드를 참고했다. 슬라이딩 윈도우 프로토콜 방식으로 풀어낼 수 있었다. 앞에서 부터 순서대로 보석들을 고르다가 중복된 보석이 나오면 시작 인덱스를 하나씩 밀어주는 방식을 사용했다. 자세한 설명은 코드에 주석을 포함하였다. 코드 import java.util.*; class Solutio..
-
[JAVA] Exceptionstudy/java 2020. 8. 21. 19:15
Throwable 클래스 예외 처리를 할 수 있는 최상위 클래스이다. Exception과 Error는 Throwable의 상속을 받는다. Error : 오류 Error는 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용 프로그램에 문제가 생겼거나 JVM 실행에 문제가 생겼을 경우에 발생하는 것을 말한다. 따라서 개발자가 미리 예측해서 처리할 수 없다. Exception : 예외 Exception은 사용자의 잘못된 조작 혹은 개발자의 잘못된 코딩으로 인해 발생하는 프로그램의 오류를 말한다. Exception이 발생하면 Error와 마찬가지로 프로그램이 종료가 된다. 하지만 Exception은 Exception Handling(예외 처리)를 통해 프로그램이 종료되지 않고 정상적으로 동작할 수 있게 한다. C..
-
[프로그래머스] 하노이의 탑 (08.09)algorithm/프로그래머스 2020. 8. 9. 20:02
문제 https://programmers.co.kr/learn/courses/30/lessons/12946 코딩테스트 연습 - 하노이의 탑 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대�� programmers.co.kr 접근법 하노이 탑이 재귀의 대표적인 예시임에도 풀기가 힘들었다. https://shoark7.github.io/programming/algorithm/tower-of-hanoi '하노이의 탑' 이해하기 '하노이의 탑' 문제를 이해하고 문제 해결을 위한 핵심 통찰을 살핀 뒤 코드로 작성합니다. 이후 탑의 개수에 따른 총 이동 횟수를..
-
[JAVA] 제네릭study/java 2020. 8. 8. 00:31
제네릭 ( Generic ) 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능 제네릭이 필요한 이유 public class ArrayListEx { private int size; private Object[] elements = new Object[5]; public void add(Object value){ elements[size++] = value; } public Object get(int index){ return elements[index]; } } 위의 코드는 ArrayList를 직접 만든 예시다. public class Main { public static void main(String[..
-
[JAVA] GCstudy/java 2020. 8. 6. 00:43
GC란? Java는 JVM ( Java Virtual Machine ) 위에서 구동이 된다. JVM에서 애플리케이션이 사용하는 메모리를 관리하는 작업이 있는데 이를 GC라고 한다. Garbage Collection의 약자로 런타임 시에 힙 영역에 저장되는 객체들을 주기적으로 확인하여 사용하지 않는 객체를 해제하여 정리하는 역할을 한다. Stop-the-world GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것을 말한다. Full GC가 발생하면 JVM은 애플리케이션의 실행을 멈추고 GC를 실행하는 스레드만 동작한다. 웹 서버에서 Full GC가 발생하면 서비스는 중단될 것이고 서비스가 중단된 동안 각종 Time out이 발생할 것이며 미뤄진 작업들이 쌓여 또 다른 Full GC를 발생시키게 ..
-
[JAVA] Try-with-resourcesstudy/java 2020. 7. 30. 21:37
try-with-resources : try(...)에서 선언된 객체들을 try가 종료될 때 자동으로 자원을 해제해주는 기능 try에서 선언된 객체가 AutoCloseable 인터페이스를 구현하였다면 Java는 try 구문이 종료될 때 객체의 close() 메소드를 호출해줌. 기존에 try-catch-finally로 자원 해제하는 방법 Java7 이전에 try-catch-finally 구문에서 자원을 해제하려면 번거로웠다. public static void main(String[] args) throws IOException { BufferedReader br = null; try{ br = new BufferedReader(new InputStreamReader(System.in)); int input..