자기 개발

· Algorithm
- 알고리즘 분류 : 정렬, 우선순위 큐 - 사용 언어 : JAVA - 문제 요점 - 음수가 2개 이상인 경우, 음수끼리 곱해서 양수로 만들 수 있다. - 음수가 하나이고, 0이 있는 경우, 음수와 0을 곱해서 0으로 만들 수 있다. - 양수가 2개 이상인 경우, 양수끼리 곱해서 더 큰 양수로 만들 수 있다. (단, 1이 2개 인 경우 곱셈보단 더하기가 더 크다.) 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.PriorityQueue; import java.util.Qu..
· Algorithm
- 알고리즘 분류 : 정렬, 우선순위 큐 - 사용 언어 : JAVA - 문제 요점 - 가방의 무게를 기준으로 넣을 수 있는 보석들을 우선순위 큐에 넣는 방식으로 풀이 - 참고한 블로그 : https://devowen.com/300 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Queue; import java.util.StringTokenizer; /* 첫 번째 방법 : 보석의 정렬 방법 : 가치 내림차순 가방의 정렬 방법..
· BE/Java
이 포스팅에서 작성하는 내용은 EFFECTIVE JAVA(이펙티브자바) 에서 발췌하였습니다. 아이템 70. 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라 자바는 문제 상황을 알리는 타입(throwable)으로 검사 예외, 런타임 예외, 에러 3가지가 있다. 검사 예외 호출하는 쪽에서 복구하리라 여겨지는 상황이라면 검사 예외를 사용하자. 이것이 검사와 비검사 예외를 구분하는 기본 규칙이다. 검사 예외를 던지면 호출자가 그 예외를 catch로 잡아 처리하거나 더 바깥으로 전파하도록 강제하게 된다. 따라서 메서드 선언에 포함된 검사 예외 각각은 그 메서드를 호출했을 때 발생할 수 있는 유력한 결과임을 API 사용자에게 알려주는 것이다. 비검사 예외 비검사 예외(throwab..
· BE/Java
이 포스팅에서 작성하는 내용은 EFFECTIVE JAVA(이펙티브자바) 에서 발췌하였습니다. 아이템 69. 예외는 진짜 예외 상황에만 사용하라 ex 1) 예외를 잘못 사용한 예 try { int i = 0; while (true) range[i++].climb() } catch (ArrayIndexOutOfBoundsException e) { } 위 코드는 배열의 원소를 순회하는데, 무한루프로 돌다가 배열의 범위를 벗어나 ArrayIndexOutOfBoundsException이 발생하면 끝을 낸다. 이 코드는 상당히 가독성도 떨어지고 성능도 좋지 않다. ex 2) ex1을 기반으로 표준적인 관용구대로 작성한 예 for(Mountain m : range) m.climb(); 예외를 사용한 반복문을 사용하지..
· BE/Java
이 포스팅에서 작성하는 내용은 EFFECTIVE JAVA(이펙티브자바) 에서 발췌하였습니다. 아이템 68. 일반적으로 통용되는 명명 규칙을 따르라 자바의 명명 규칙 자바 플랫폼은 명명 규칙이 잘 정립되어 있으며, 자바 언어 명세에 기술되어 있다. 자바 명명 규칙은 크게 철자와 문법으로 나뉜다. 철자 패키지, 클래스, 인터페이스, 메서드, 필드, 타입 변수의 이름을 다룬다. 이 규칙들은 특별한 이유가 없는 한 반드시 따라야한다. 이 규칙을 어기면 가독성이 떨어져 그로 인해 오류를 발생시킬 수도 있다. 패키지와 모듈 패키지와 모듈 이름은 각 요소를 점(.)으로 구분하여 계층적으로 명명한다. 요소들은 모두 소문자 알파벳 혹은 숫자로 이루어진다. 조직 바깥에서도 사용될 패키지라면 조직의 인터넷 도미인 이름을 역..
· BE/Java
이 포스팅에서 작성하는 내용은 EFFECTIVE JAVA(이펙티브자바) 에서 발췌하였습니다. 아이템 67. 최적화는 신중히 하라 최적화 관련 격언 (맹목적인 어리석음을 포함해) 그 어떤 핑계보다 효율성이라는 이름 아래 행해진 컴퓨팅 죄악이 더 많다. - 윌리엄 울프 자그마한 효율성은 모두 잊자. 섣부른 최적화가 만악의 근원이다. - 도널드 크누스 최적화 할 때는 다음의 두 규칙을 따르라. 첫 번째, 하지마라. 두 번째, (전문가 한정) 아직 하지 마라, 다시 말해 완전히 명백하고 최적화되지 않은 해법을 찾을 때까지 하지마라. - M.A 잭슨 이 격언들은 자바가 탄생하기 20년 전에 나온 것으로, 최적화의 어두운 진실을 알려준다. 최적화는 좋은 결과보다 해로운 결과로 이어지기 쉽고, 섣불리 진행하면 그럴 ..
· Algorithm
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int N, M, B; public static int[][] map; public static int RESULT_TIME = Integer.MAX_VALUE; public static int RESULT_HEIGHT = 0; public static int MIN = Integer.MAX_VALUE; public static int..
· Algorithm
- 알고리즘 분류 : DFS - 사용 언어 : JAVA - 문제 요점 - 0일 때, 1개를 빼줘야 한다. 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int N, S; public static int[] arr; public static int cnt = 0; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader..
멍목
'자기 개발' 태그의 글 목록 (8 Page)