Home

[프로그래머스] Level3 - 불량 사용자

> 문제 문제 : [불량 사용자] > 문제 풀이 완전탐색으로 풀었으며, hashSet을 사용하여 중복제거를 해주었다. import java.util.*; class Solution { static Set<String> set; public int solution(String[] user_id, String[] banned_id) { set = new HashSet<>(); rec(0, user_id, banned_id, new boolean[user_id.length]); return set.siz...

Read more

[프로그래머스] Level3 - 방문 길이

> 문제 문제 : [방문 길이] > 문제풀이 이동했던 길은 좌표이동하면서 현재좌표와 다음좌표를 혼합하여 Set에 저장하는 방식으로 풀이 하였다. import java.util.*; class Solution { static boolean check(int x, int y){ if(x>=0 && y>=0 && x<11 && y<11){ return true; }else return false; } public int solution(S...

Read more

[프로그래머스] Level2 - 큰 수 만들기

> 문제 문제 : [큰 수 만들기] 문제풀이 큰 자리수의 값을 최댓값으로 만들면 된다. 지울 수 있는 값 K의 갯수만큼 탐색하여 최댓값을 찾아 나머지 값을 지워나갔다. “4177252841”, k=4 를 예시로, index 0~4 (K+1) 까지 탐색하여 최댓값을 찾는다. 여기서 index 4 까지 탐색하는 이유는, 최댓값 이전의 값을 지우기 때문이다. 풀이에서는 최댓값을 StringBuilder에 추가하고 이전의 갯수를 K값에서 줄여나갔다. 4 1 7 7 2 ( K=4 ) max 7, K = 4 - 2 7 2 5 ( K = 2 ) max 7, K ...

Read more

[프로그래머스] Level3 - 여행 경로

> 문제 문제 : [여행 경로] > 문제풀이 문제 조건을 잘 보아야 한다. 주어진 티켓(항공권)을 모두 소진 해야하는 조건을 염두해두고 풀었다. 탐색은 DFS 활용. 모두 탐색했을 때, 경로가 2개 이상이라면 알파벳 순서가 앞서는 경로를 Return 해야한다. ( TreeSet 사용 ) 소스는 다음과 같다. import java.util.*; class Solution { static Map<String, Map<String, Integer>> routes; static public String[] solution(St...

Read more

[프로그래머스] Level2 - 소수찾기

> 문제 문제 : [큰 수 만들기] 문제풀이 조합 완탐 문제. 완탐으로 도출되는 각 값에서 소수검사를 해주었고, 중복되는 값은 HashSet으로 처리하였다 import java.util.*; class Solution { static char[] numbersToChar; static boolean[] visit; static List<Character> list; static Set<Integer> set; static boolean check(){ StringBuilder sb = new Strin...

Read more

[프로그래머스] Level3 - 베스트앨범

> 문제 문제 : [베스트앨범] > 문제풀이 해시맵 정렬하여 사용하였다. 문제를 이해하면 어렵지 않은 문제다. 한 장르에 두개 이상의 노래가 있다면 재생된 수가 큰 순으로 선택하고, 노래가 하나있다면 하나만 선택한다. import java.util.*; class Solution { static class Music implements Comparable<Music>{ int index, plays; Music(int index, int plays){ this.index = index; ...

Read more

[알고리즘] 소수 만들기 시간복잡도 in Java

일반적인 방법과 에라토스테네스의 체, 비트연산자를 활용한 소수 만드는 알고리즘의 시간복잡도를 비교하고자 한다. Last_Number = (10,000 ~ 1억) 을 대상으로 각 알고리즘 시간복잡도를 비교하였다. 구현 방법 일반적인 방법 가장 일반적인 방법이다. 제곱근까지의 숫자와 나눈 나머지 값이 0이라면 소수가 아니다. for(int i=2; i<=LAST_NUM; i++) { boolean prime = true; for(int j=2; j*j<=i; j++) { if(i % j == 0) { prime = false; break; } } if(...

Read more

[SpringBoot] 자동 리로드 ( Livereload, Auto Reload )

자동 리로드 ( Auto Reload ) 다음과 같이 디펜던시를 추가한다. dependency <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> Eclipse 인경우 Project - Build Automatically 체크한다. 저장할 때, java파일이 class파일로 자동저...

Read more