본문 바로가기
반응형

분류 전체보기99

[프로그래머스/JAVA] 베스트 앨범 - 해시 먼저 생각했던 풀이 방법은 아래와 같다. 각 장르의 개수를 HashMap에 담기 classic : 3 pop : 2 각 장르의 재생 횟수 합계를 HashMap에 담고, 내림차순으로 sorting하기 pop : 3100 classic : 1450 pop 장르의 재생 횟수 합계가 가장 많으므로 pop 장르 노래의 index가 먼저 수록되어야 한다. ex) 4, 1 그 다음으론 classic 장르 노래의 index가 수록되어야 하는데 각 장르별 2개씩만 수록될 수 있으므로 3, 0이 차례로 수록되고 2는 수록되지 못한다. 따라서 앨범엔 4, 1, 3, 0 index 순으로 수록된다. 이를 위하여 HashMap hm = new HashMap(); 를 생성하였다. key는 장르이며, value가 또 HashMap.. 2022. 2. 20.
[프로그래머스/JAVA] 위장 - 해시 이 문제는 HashMap에 put하는 부분이 완주하지 못한 선수 문제와 똑같다. 먼저 HashMap에 옷의 종류별로 몇 개가 있는지 put 하도록 하자. import java.util.HashMap; class Solutio { public int solution(String[][] clothes) { int answer = 1; HashMap hm = new HashMap(); for (int i=0; i 2022. 2. 18.
[프로그래머스/JAVA] 전화번호 목록 - 해시 먼저 배열의 데이터 하나하나를 다 비교하는 단순한 방법으로 풀어보았다. 역시나 효율성 테스트에서 탈락! 이렇게 풀지 말라고 기록해본다.. class Solution { public boolean solution(String[] phone_book) { boolean answer = true; for(int i=0; i 2022. 2. 18.
[프로그래머스/JAVA] 완주하지 못한 선수 - 해시 1. Sort 참여자와 완주자 Array를 정렬한 후 값을 비교하는 방법 입출력 예의 세번째 경우를 sort하면 participant는 ana | mislav | mislav | stanko ▼ -------------- 일치하지 않음 completion는 ana | mislav | stanko import java.util.Arrays; class Solution { public String solution(String[] participant, String[] completion) { Arrays.sort(participant); Arrays.sort(completion); int i; for (i = 0; i < completion.length; i++) { if (!participant[i].eq.. 2022. 2. 18.
[JAVA] 객체 복제(clone)와 Shallow Copy, Deep Copy 객체를 복제하기 위해서는 Cloneable을 구현하고, clone() 메소드를 오버라이드하면 되서 간단하다! @Getter @Setter public class Person implements Cloneable{ private String name; private int age; @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } } 그리고 아래와 같이 person1.clone(); 을 사용하여 person1의 객체를 복제하였다. Person person1 = new Person(); person1.setName("홍길동"); person1.setAge(30); try { Person pers.. 2022. 2. 16.
[Eclipse/STS] Marketplace에서 Decompiler 설치하기 지난주에 jadClipse를 이용하여 디컴파일시키는 방법을 포스팅했었는데.. 적용이 잘 될때도 있고 안될때도 있어서 새로운 방법을 찾았다. [Eclipse/STS] Decompiler Plugin 적용하기 인텔리제이에선 기본적으로 디컴파일해주기 때문에 개발할 때 라이브러리 소스를 볼 수 있어서 편리했다 반면 이클립스나 STS에선 기본적으로 제공해주지 않아 인텔리제이를 쓰다 돌아오니 불 ynzu-dev.tistory.com 1. 이클립스 마켓플레이스에서 Enghanced Class Decompiler 설치 (help>Eclipse Marketplace) 2. Decompiler의 Default Class Decompiler를 FernFlower로 선택 3. *.class, *class without sou.. 2022. 2. 16.
[JAVA] 싱글톤 패턴(Singleton Pattern) : 멀티 스레드 환경에서의 문제점 싱글톤 패턴이란? 한마디로 정의하자면 '객체를 단 하나만 생성하도록 하는 디자인 패턴'! static이기 때문에 고정된 메모리 영억을 얻으며, 모든 클라이언트(클래스)에서 해당 인스턴스를 사용할 수 있어서 공통된 객체를 다수의 클라이언트에서 사용해야하는 상황에서 주로 사용 된다. 싱글톤 패턴의 예제를 보면 아래와 같은 형태가 대부분이다. 본인도 싱글톤 클래스를 작성할 때 이렇게 작성하였는데, 이런 경우 멀티스레드 환경에선 두개 이상의 스레드가 getInstance()를 하게 될 경우 두개의 인스턴스가 생성되는 문제가 생길 수 있다. (= 동시성 문제, thread unsafe) public class Singleton { private static Singleton singleton = null; pri.. 2022. 2. 10.
[Eclipse/STS] Decompiler Plugin 적용하기 인텔리제이에선 기본적으로 디컴파일해주기 때문에 개발할 때 라이브러리 소스를 볼 수 있어서 편리했다 반면 이클립스나 STS에선 기본적으로 제공해주지 않아 인텔리제이를 쓰다 돌아오니 불편함을 많이 느꼈고.. 예전에 디컴파일해주는 플러그인이 있다고 들은 기억이 있어 서치해보았다! 1. 플러그인 및 jad.exe 파일 다운로드 plugin : https://sourceforge.net/projects/jadclipse/ jad.exe : http://varaneckas.com/jad/ 위 url에서 다운받은 jad.exe는 작동하지 않는 경우가 있다고 하니.. 안되는 경우 아래 파일을 다운로드 받으면 된다~! 2. net.sf.jadclipse_3.3.0.jar 파일 plugin 디렉토리로 이동 다운로드 받은 .. 2022. 2. 9.
728x90
반응형