일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바 재귀 조합
- 자바스크립트 이벤트중지
- 재귀함수
- Interface
- 상속
- 알고리즘 그래프
- inner class
- 순열 재귀
- 자바입출력
- 순열코드
- jquery 필터선택자
- 자바스크립트 이벤트처리
- java Collections.sort()
- 후위표기
- jquery dom 계층 선택자
- 자바
- parseInt()
- char to str
- 재귀
- jquery 속성선택자
- 자바 조합 재귀
- java 내부 클래스
- 서로소
- java lambda
- 자바 순열 코드
- 조합 재귀
- jquery 이벤트 처리
- 알고리즘
- str to char array
- Java
- Today
- Total
목록알고리즘 (120)
유블로그
프로그래머스 level 1 K번째수 소요시간 : 11분 11분이나 걸릴 일이었는지 참 의문~ 너무 쉬워서 덧붙일 말 없당 public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for (int i = 0; i < commands.length; i++) { int size = commands[i][1]-commands[i][0]+1; int[] arr = new int[size]; int idx = 0; for (int j = commands[i][0]-1; j
프로그래머스 level2 프린터 소요시간 : 15분 문제가 하라는대로만 하면 풀리는 문제였다. 큐를 썼고 이터레이터를 써서 뒤에 중요도 더 높은 게 있으면 다시 offer하고 또 poll 하고 반복~! 처음에 cnt를 0으로 시작해서 답이 이상하게 나왔었다.. 한 5분은 그거 잡는다고 쓴 듯.. ㅋ 항상 차분하게 풀도록 노력해야겠당 public int solution(int[] priorities, int location) { Queue q = new LinkedList(); for (int i = 0; i < priorities.length; i++) { q.offer(new int[] {i, priorities[i]}); } int[] front; int cnt = 1; while(!q.isEmpty..
프로그래머스 level 3 불량 사용자 카카오 문제다!! 소요시간 1시간..? 시간을 제대로 안봐서 사실 확실하지 않다.. 전역 list 역할 : 찾은 경우의 수가 어떤 id 를 가지고 있는 지 넣어놓고 순서만 다르고 같은 id 가 있는 결과가 나오면 경우의 수를 추가하지 않을 수 있게 함 dfs함수의 매개변수 cnt : banned_id에서 몇 번째 아이디 검사 차례인지 selected : user_id에서 선택된 id set : 경우의 수에서 선택된 id 현재 찾아야하는 banned_id의 길이를 구하고 모든 user_id 를 보면서 조건에 맞는 user_id를 찾아서 set에 추가하고 다음 banned_id 로 dfs() 재귀 돌림 cnt == N 이 되면 모든 banned_id 를 찾았다는 뜻이고..
프로그래머스 level 2 위장 소요시간 10~20분..? 기억이 잘 안 남 ㅎ 이건 처음에 어떻게 풀까 고민 좀 하는 시간이 푸는 시간보다 더 오래걸렸다. 그런데 그냥 조합 수학 공식으로 계산하면 될 것 같아서 먼저 분류별로 hashmap 을 써서 개수를 저장하고, 분류별 개수 +1 을 모두 곱한 후 모두 안 사용하는 경우 -1 해서 구했다! public int solution(String[][] clothes) { Map map = new HashMap(); int N = clothes.length; String group; for (int i = 0; i < N; i++) { group = clothes[i][1]; if(map.containsKey(group)) { map.put(group, ma..
프로그래머스 level2 전화번호목록 소요시간 10~20분...??? 기억이 잘 안난다 모든 전화번호를 확인하는 방식으로 했다. 다른 전화번호와 비교하는데 길이가 더 짧은 번호가 길이가 더 긴 번호의 시작인지 확인.. 다른 사람코드를 보니 정렬 먼저 하고 startwith 함수 써서 굉장히 효율적이고 간단하게 짜더라... 난 언제쯤 그렇게 잘 짜게 될까 ㅎ,ㅎ public boolean solution(String[] phone_book) { int N = phone_book.length; String a, b; for (int i = 0; i < N; i++) { a = phone_book[i]; for (int j = 0; j < N; j++) { if(i == j) continue; b = phon..
프로그래머스 level1 완주하지 못한 선수 소요시간 10분..? HashMap 사용이 익숙하지 않아서 이클립스에서 자동완성 메소드 보면서 풀었다.. ㅋㅋ 먼저 HashMap에 participants 를 모두 넣는데 이미 map 에 들어간 선수는 value 만 +1 해줬다. 그다음 completion을 돌면서 map 에 value가 2이상이면 value를 -1하고 value가 1이면 map 에서 remove 했다. 마지막에 map에 남은 keySet을 Set으로 받고 toArray로 배열로 바꾼후 0번째 인덱스 값을 return 했다. map을 이렇게 쓰는 게 맞나 모르겠다... 더 효율적인 방법이 있으려나..? public String solution(String[] participant, String..
프로그래머스 level 3 단속카메라 소요시간 1시간.. 이것저것 생각해보고 코드를 바꿔본다고 시간이 오래걸렸다 ㅎ 1. 차량이 나간 지점 오름차순으로 routes를 정렬한다. 2. route 를 카메라를 차량이 나간 지점에 둔다. 3. 카메라 둔 위치에 다른 route들도 포함되는지 확인 후 포함되면 true 시켜준다. 4. for 문을 돌면서 카메라 둔 곳에 포함되지 않는(false) route에 다시 카메라 두고 반복! public int solution(int[][] routes) { Arrays.sort(routes, new Comparator() { @Override public int compare(int[] o1, int[] o2) { return o1[1]-o2[1]; } }); int ..
프로그래머스 level 3 섬 연결하기 이상하게 코드를 짜다가 이게 MST구하는 크루스칼 문제라는 걸 나중에 꺠달았다.. 그래프를 한 지 오래 되어서 기억이 나지 않아 옛날에 공부했던 크루스칼 코드를 다시 보고 짤 수 있었다. 코드는 기본 크루스칼 코드와 다른 점이 전혀 없다!!! import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class Solution { public static int solution(int n, int[][] costs) { N = n; List adjList = new ArrayList(); for (int i = 0; i < cos..