[이코테 ]그리디(Greedy) 알고리즘
·
PS/이코테
그리디 알고리즘이란?현재 상황에서 가장 좋아 보이는 것만을 선택하는 알고리즘즉, 매 순간 가장 좋아 보이는 것을 선택하며 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다.정렬 알고리즘과 짝을 이뤄서 출제되는 경우가 많다. 바로 문제 유형을 파악하기 어렵다면 그리디 알고리즘을 의심해볼 수 있다. 하지만 그리디 알고리즘을 모든 상황에 적용할 수 있는 것은 아니다.현재 상황의 최적의 해가 전체 상황의 최적의 해를 보장하는 것은 아니기 때문이다.그렇기 때문에 문제 풀이를 위한 최소한의 아이디어를 떠올리고 이것이 정당한 방법인지 검토해야 한다.  대표적인 그리디 알고리즘의 문제로 '거스름돈' 문제가 있다.예제 1) 거스름돈손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구한다..
[IntelliJ] Live Templates으로 테스트 코드 템플릿 tdd 만들기
·
IntelliJ
1. File > Settings > Editor > Live Templates 2. 오른쪽에 + 버튼을 눌러서 Template Group으로 Custom  생성 3. 오른쪽에 + 버튼을 눌러서 Live Template으로 Custom 그룹에  tdd를 생성 4. 템플릿 코드  작성Abberviation : tddDescription: Test Code TemplateTemplate Text:@Testpublic void $NAME$() throws Exception { //given $END$ //when //then }Define: java  5. 결과 확인
[Trouble-Shooting] Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
·
트러블 슈팅/Spring
❗문제 상황오류 메세지Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended    오류 상황Spring boot로 test 코드 작성하고 실행했는데 이런 경고 메세지가 떴다.   😎 해결 방법 원인찾아보니 JDK 1.8 버전 이후에 추가된 기능으로 클래스 로딩 시 Class Data Sharing(CDS) 기능을 사용하면 발생하는 경고 메시지였다. 경고 메세지이기 때문에 무시해도 상관없지만 그래도 경고 메세지를 없애는 방법은 아래와 같다.     해결build.gradle 파일에 jvmArgs '-Xshare:o..
[백준][Java] 18870번 : 좌표 압축
·
PS/백준
[문제 링크]https://www.acmicpc.net/problem/18870문제 설명수직 선 위의 N개 좌표에 대해서 좌표 압축을 적용해서 출력Xi 를 좌표 압축한 결과 X'i는 Xi > Xj를 만족하는 Xj 의 개수(Xj는 모두 서로 다른 좌표이다)입력: N(좌표개수), N개의 좌표(X1, X2, ..., XN)출력: 좌표압축을 적용한 결과(X'1, X'2, ..., X'N)ex1) 2  4  -10  4  -9 의 좌표값이 주어졌을 때, 좌표압축한 결과는 2 3  0  2  1  이다.         2 보다 작은 값은 -10  -9,          4 보다 작은 값은 -10  -9  2,         -10 보다 작은 값은 없고,        -9 보다 작은 값은 -10ex2) 1000  9..
[Java] 오버로딩과 오버라이딩(Overloading & Overriding)
·
Java
오버로딩과 오버라이딩오버로딩(Overloading)은 한 클래스 내에서, 같은 이름의 메서드를 여러 개 정의하는 것 오버라이딩(Overriding)은 부모클래스로부터 상속 받은 메서드를 자식클래스에서 재정의하는 것    오버로딩(Overloading)메서드 이름이 같고, 매개변수의 개수나 타입(순서)이 다른 메서드를 여러개 정의하는 것메서드 오버로딩을 사용함으로써 메서드 이름을 절약할 수 있다.같은 기능을 하는 메서드를 하나의 이름으로 사용할 수 있다.오버로딩의 조건 메서드 이름이 같아야 한다.메서드 매개변수(파라미터)의 개수가 달라야 한다.매개변수의 개수가 같다면 타입(순서)이 달라야 한다.‘리턴(반환) 타입’ 만 다른 것은 오버로딩 X‘접근제어자’ 만 다른 것은 오버로딩 Xclass Overloadi..
[Java] 자바 Queue에 x, y 값 두 개 삽입(Pair 클래스, Point 클래스)
·
Java
자바로 bfs 문제를 풀 때, x좌표 y좌표 두 개의 값을 한 번에 하나의 Queue에 삽입해야 하는 경우가 있었다.Pair 클래스를 직접 생성해서 문제를 풀었는데, 같은 기능을 하는 자바의 Point 클래스 가 있다.    1. Pair 클래스를 직접 생성C++에 있는 pair 클래스를 직접 생성해서 사용할 수 있다.import java.util.*;public class Test { public static class Pair { int x; int y; public Pair(int x, int y) { this.x = x; this.y = y; } } public static vo..