일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 알고리즘 그래프
- jquery 이벤트 처리
- 자바스크립트 이벤트처리
- 조합 재귀
- java 내부 클래스
- inner class
- Java
- 자바입출력
- java Collections.sort()
- 자바
- 순열코드
- char to str
- 후위표기
- 상속
- java lambda
- 자바스크립트 이벤트중지
- parseInt()
- 자바 조합 재귀
- 자바 재귀 조합
- 알고리즘
- 자바 순열 코드
- 재귀함수
- 순열 재귀
- 서로소
- str to char array
- jquery 필터선택자
- jquery dom 계층 선택자
- jquery 속성선택자
- Today
- Total
목록전체 글 (278)
유블로그
[프로그래머스] level2 캐시 소요시간 : 14분 LRU를 어떻게 구현해야하나에 생각을 많이 했다. 뭔가 flag 같은 걸로 할 수 있을 것 같았는데 일단 그냥 배열을 움직이는 방법으로 했다. 캐시크기만큼 string 배열 만들어서 캐시hit면 그 도시를 맨 앞으로 당기고(위치만 바꾼다) miss면 캐시 맨 끝에 있는 도시 없애고 모든 도시를 한 칸씩 뒤로 밀어서 맨 앞에 도시를 추가한다. 난 이 작업을 수작업으로 인덱스조절해서 했는데.. 풀고나서 다른 사람 풀이를 보니 list remove add 로 풀었더라.. ㅎ list.remove(0) 과 원래 있던 도시는 list.remove() 후 다시 list.add 방식으로........wow 로직은 같지만 코드가 훨씬 간결하다. 난 언제쯤~ clas..
[프로그래머스] level2 프렌즈4블록 소요시간 : 38분 문제가 하라는 대로 했다. 지워지는 블록이 0개가 될 때까지 while 문에서 반복한다. remove() : i , j 가 있다면 (i+1, j), (i, j+1), (i+1, j+1) 세 개가 일치하는 지 확인 후 일치한다면 list에 위치를 넣어놓는다. list에 있는 위치들을 지워진 블록('-')으로 표시한다. 이 때 중복은 개수를 세지 않는다. move() : 블록을 지웠으니 아래로 블록을 떨어뜨려야 한다. 가로 맨 밑부터 위로 올라가면서 지워진 블록 개수를 세고 그 수만큼 위에서 아래로 땡긴다. 블록이 없는 칸은 '*' 으로 표시하여 접근하지 않도록 한다. 답이 다르게 나와서 디버깅하면서 고쳤다... 시간이 꽤 걸렸다..ㅎ import..
[프로그래머스] level2 뉴스 클러스터링 소요시간 : 48분 이것저것 에러 잡느라... ㅠㅠ 오래 걸렸다 특히 (double)................................. 그리고 아스키코드 조건 잘못준거....................... -> 이거는 다음에 아스키코드말고 'a' 'z' 이런식으로 하는 게 좋을듯.. 더 직관적이니까... 그리고 공백.................................................. 대충 생각하고만 바로 짠 내 잘못............ 이런건 정규표현식으로 하면 진짜 간단하게 조건 줄 수 있을 것 같다. 나중에 정규표현식 공부를 해야겠다!!!!!!!!!!!!!!!!!!!!!!!!!!!! 대소문자 구분이 없으니 string 둘..
[프로그래머스] level2 올바른 괄호 소요시간 : 8분 처음에 효율성 하나가 시간초과가 나서..ㅎㅎ 고쳤다. 쓸데없이 stack에 문자열 s를 다 넣었기 때문에 시간초과 난 듯 하다. 그래서 그냥 인덱스를 옮겨서 했는데 s의 끝부터 보면서 ) 가 안 나왔는데 ( 가 나오면 return false ) 가 나왔었는데 ( 가 나오면 ) 개수를 하나 줄여서 ( ) 개수를 맞춰가면서 idx 를 줄이는 방식으로 했다. class Solution { boolean solution(String s) { int close = 0, idx = s.length()-1; char c; while(idx >= 0) { c = s.charAt(idx--); if(close == 0 && c == '(') return fals..
Docker? : OS레벨 가상화를 이용하여 컨테이너화 된 소프트웨어 패키징 및 관리가 가능한 가상화 도구 virtual machines : 각각 os 가 다 올라가고 application이 각각의 os를 거쳐 돌아감. containers : 각각의 application이 os를 가상화해 들고있어서 무겁지 않음 Docker 사용을 위한 2가지 개념 Dockerfile --------------------> app(Image) ----------------------> running app container docker build app docker run kernel(host) 위에 base Image 를 올리고 image들을 올리고 container를 올린다. image는 read only, conta..
[프로그래머스] level2 점프와순간이동 소요시간 : 7분 이 문제는 사실.. 며칠전에 잠시 고민했었던 것.... 모르겠어서 그냥 패스하고 나중에 풀어야지 하다가 오늘 다시 풀었다 오늘은 좀 생각하니 바로 떠올랐다. n이 엄청나게 커서 전부 다 해보는 건 말도 안되고 일단, 최대한 x2 이동 (순간이동)을 해야하니 n이 짝수일 땐 나누기2가 가능하니 그냥 나누고 홀수일땐 이동을 +1만하고 다시 나누기 2를 하면 총 건전지 사용횟수가 나올 것이라 생각들었다. public class Solution { public int solution(int n) { int ans = 0; while(true) { if(n == 1) { ans++; break; } if(n % 2 != 0) ans++; n /= 2; ..
[프로그래머스] level3 멀리뛰기 소요시간 : 7분 종이에 적으니까 규칙이 보이길래 코드 짜봤더니 통과 되었다. n번째 칸은 n-1번째와 n-2번째 칸의 경우를 더하면 나왔기 때문. 왜냐면 한 칸과 두 칸, 움직이는 경우가 2가지니까! 처음엔 문제만 보고 뭔가 dp 문제 아닐까 했는데 풀고나서 다른 사람들 풀이를 보니 dp 풀이도 있고 피보나치 풀이도 있고 다양하구만 class Solution { public long solution(int n) { if(n == 1 || n == 2) return n; long[] arr = new long[n+1]; arr[1] = 1; arr[2] = 2; for (int i = 3; i < arr.length; i++) { arr[i] = ((arr[i-2] ..
[프로그래머스] level2 오픈채팅방 소요시간 : 18분 간단히 map 사용할 줄 안다면 할 수 있는 문제.. record를 모두 돌면서 enter 와 change 때 map.put() 으로 id 와 name 넣어주면 자동으로 생성되거나 변경된다. 이 때 최종 출력은 enter와 leave 만 나오므로 횟수를 count하고 그 count 수 만큼 String 배열 크기 잡는다. 한 번 더 record 를 돌면서 enter, leave 명령에 따른 다른 메세지를 출력하며 그 때 이름은 map의 id 를 이용하여 뽑아낸다. import java.util.Arrays; import java.util.HashMap; import java.util.Map; class Solution { public String..