일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java lambda
- 자바
- 상속
- jquery 필터선택자
- 알고리즘 그래프
- 순열 재귀
- Interface
- 순열코드
- 조합 재귀
- 자바 조합 재귀
- 서로소
- java 내부 클래스
- 자바스크립트 이벤트처리
- 자바 순열 코드
- 알고리즘
- jquery 이벤트 처리
- java Collections.sort()
- 재귀
- jquery 속성선택자
- str to char array
- char to str
- 자바스크립트 이벤트중지
- 자바입출력
- inner class
- parseInt()
- 자바 재귀 조합
- jquery dom 계층 선택자
- Java
- 후위표기
- 재귀함수
- Today
- Total
목록알고리즘 (120)
유블로그
[프로그래머스] level2 튜플 소요시간 : 23분 매개변수로 string이 주어져서 substring과 split을 이용해야만 했었다. 하지만 다 풀고 다른 사람 코드를 보니 replaceAll 을 이용하여 {, } 를 모두 없애고 , 로 split 했던데 그거나 이거나 비슷할 듯하다. 그 다음 split된 결과를 integer로 변환하여 배열을 list에 다 넣고 list를 배열 길이순으로 정렬한다. 그래야 중복되지 않는 숫자를 찾을 수 있다. 정렬 후 정답 list에 숫자가 있는지 contains로 확인하고(set의 메소드를 사용해도 될 듯) 없으면 정답 list에 넣는다. import java.util.ArrayList; import java.util.Arrays; import java.util..
[프로그래머스] level2 괄호변환 소요시간 : 1시간4분 문제 중간에 '4-4. u의 첫 번째와 마지막 문자를 제거하고, 나머지 문자열의 괄호 방향을 뒤집어서 뒤에 붙입니다.' 이 말을 u를 역순으로 뒤집으라는 말인줄 알고,,,,,,,,, 제출하면 계속 반만 맞길래 왜지 했는데 괄호 방향을 바꾸라는 게 ( -> ), ) -> ( 이거였다..... 이것때문에 시간을 많이 썼다... 문제 자체는 크게 어렵지 않았다. 문제가 하라는 대로만 해주면 되고(process 함수), 올바른 문자열인지 체크하는 함수(isCorrect)와 u,v 로 나누는 함수(splictIdx)만 생각하면 됐었다. class Solution { public String solution(String p) { return process..
[프로그래머스] level2 문자열 압축 소요시간 : 42분 map 으로 삽질하다가 오래 걸린 문제.. ㅋ 절대 40분씩이나 걸릴 만한 문제는 아닌 듯 자르는 단위를 1부터 단어길이의 반까지 모두 시도해본다. 단어 길이의 반 초과 부터는 어차피 압축필요없이 문자열길이와 압축길이가 같으므로 시도하지 않는다. 자르는 단위대로 cur 과 next를 갱신하는데, cur과 next가 같으면 계속 count를 올려서 같은 문자열이 몇 번 나왔는지 체크한다. cur과 next가 다르면 StringBuilder에 append 후 cur에 next를 담아 비교대상을 바꿔주고 , count = 1로 초기화한다. 이걸 문자열 끝까지 확인하여 StringBuilder 길이로 MIN 을 갱신한다. class Solution {..
[프로그래머스] level 2 카카오 프렌즈 컬러링북 소요시간 : 18분 그냥 dfs로 blob 구하는 문제. 매우 쉬웠음 방문하지 않았고 0이 아닌 값을 찾으면 dfs 실행해서 주변 연결된 것들 다 찾고 cnt 와 MAX 값 비교해서 갱신한다. class Solution { public int[] solution(int m, int n, int[][] picture) { M = m; N = n; int numberOfArea = 0; visited = new boolean[m][n]; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if(!visited[i][j] && picture[i][j] != 0) { numberOfArea++; cnt ..
프로그래머스 level2 삼각달팽이 소요시간 : 18분 방향이 3가지가 있어서 1 - i만 증가 2 - j만 증가 3 - i 감소 j 감소 이 3가지 방향을 차례대로 반복했다. i 나 j 인덱스가 벗어나거나 이미 값이 들어간 곳에 도착하면 방향을 바꿔주면 된다. 1 + 2 + ... + n = n(n+1)/2 개만큼 돌면 break 한다. 풀고나서 다른 사람 풀이를 보니 i % 3 == 0 이면 i++, i % 3 == 1이면 j++, i % 3 == 2 이면 i--, j-- 이렇게 for문 두개 안에서 간단하게 풀이를 했는데 진짜 괜찮은 방법인 것 같다. class Solution { public int[] solution(int n) { int[][] arr = new int[n][]; for (in..
프로그래머스 level1 크레인 인형뽑기 게임 소요시간 : 8분 그냥 문제가 하라고 하는대로 짜면 되는 문제였다 문제에서 말하는 바구니를 list로 하고 list.get 으로 했는데 stack 으로 peek 해서 짜는 게 훨씬 편할 듯! import java.util.ArrayList; import java.util.List; class Solution { public int solution(int[][] board, int[] moves) { int N = board.length; int answer = 0; List list = new ArrayList(); for (int i = 0; i < moves.length; i++) { for (int i2 = 0; i2 < N; i2++) { if(boa..
프로그래머스 level2 스킬트리 소요시간 : 1시간 11분 어우 간단할 줄 알았는데 자꾸 막혀서,,,, 엄청 오래 걸렸다. skill 문자들이 나온 인덱스를 저장해놓고 순서대로 나왔다면 answer++ 했다. 내가 짜고 싶었던 방법은 저장하기 전에 아예 순서대로 나왔는지 체크하는 거였는데 그렇게 하려면 함수 하나 빼서 idx 관리해주면 되는 간단한 문젠데 왜 안된거지 이상하군 import java.util.Arrays; class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; int[] arr = new int[skill.length()]; for (int i = 0; i < skill_trees...
프로그래머스 level2 124의 나라의 숫자 너무 안 풀려서 답을 봤다..ㅠ 3진법으로 생각하다가 내가 놓친 부분은.. 3으로 나누어 떨어질 때 n-1 해줘야하는것... 3진법으로 3은 10 인데 124나라는 4 라서 자리수 하나를 빼줘야 맞다 사실 완벽히 이해하진 못했다 ㅎ 계속 생각해봐야 할 듯 String 이어붙이니까 시간초과나서 StringBuilder로 바꿨다. 코드 class Solution { public String solution(int n) { StringBuilder answer = new StringBuilder(); int r = 0; while(true) { if(n == 0) break; r = n % 3; if(n % 3 == 0) r = 4; answer.insert(0,..