일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해외유학
- 미국유학
- 개인 프로젝트 개발일지
- 자바
- F1학생비자
- 복수학위제도
- jpa
- 비전공자 git
- 미국유학생
- California State University Sacramento
- 사이드프로젝트
- java
- CSUS
- 파이데이아창의인재학과
- 유학생대학생활
- 미국대학생활
- Kenneth Park
- 미국대학
- 자바 스터디
- i-20
- JVM아키텍처
- 2+2
- 미국유학생활
- 케네스로그
- Java 스터디
- 만다라트프로젝트
- 케네스
- 개발일지
- 부산외대
- 유학생 준비물
- Today
- Total
목록Dev/알고리즘 (5)
케네스로그
프로그래머스 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 문제 각 유저는 한 번에 한명의 유저를 신고할 수 있다. 신고 횟수에 제한은 없다. 서로 다른 유저를 계속해서 신고할 수 있다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 간주한다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송한..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ceFq3e/btrzleZsXzY/4wNZ0SQe1nvpLWn0MRIDhK/img.png)
문제 중복되지 않는 정수로 이루어진 정렬된 배열 nums에 새로운 정수 target을 삽입하고자 한다. 정렬된 상태를 유지하면서 target이 삽입될 수 있는 index를 구하라. 만약, 배열 내에 target과 같은 값이 있다면 해당 index를 삽입 위치로 한다. 테스트케이스 nums = {1, 3, 5, 6} target = 5 output: 2 nums = {1, 3, 5, 6} target = 2 output: 1 nums = {1, 3, 5, 6} target = 7 output: 4 해설 및 풀이 주어진 배열의 처음과 끝, 이를 기반으로 중앙값을 정한다. 중앙값이 target보다 크다면 시작~중앙을 탐색한다 중앙값이 target보다 작다면 중앙~끝을 탐색한다. 자바 구현코드 class Sol..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/E5lpi/btrzrbMYKxK/OtkzyTq2sIhp9y78NweLt0/img.png)
문제 공장에서 상품을 생산할때 품질체크에 문제가 발생했다. 모든 상품은 이전의 상품을 기반으로 개발되었는데, 불량이 발생한 버전 이후의 모든 상품은 불량이다. isBadVersion(version)메소드는 해당 버전이 불량인지 여부에 따라 true/false를 반환한다. n개의 버전 [1,2, ... , n]일 때, 어느것이 가장 최초의 불량버전인지 찾아라. API 호출을 최소화하여 최초의 불량 버전을 찾아라. 테스트케이스 n = 5, bad = 4 output : 4 n = 1, bad = 1 output: 4 해설 우리가 찾아야하는 답은 최초의 불량이다. 즉, 불량인 제품 중 이전의 제품이 정상인 것을 찾아야한다는 것이다. 이 문제에서 주목해야할 점은 배열이 아니라 특정 api를 통해서 배열 형태의 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/KIhat/btrzqztMhUu/AKWJvINJBT0up0IBc6KIYK/img.png)
문제 정렬된 배열 nums와 찾고자 하는 정수 target이 주어질 때, target에 해당하는 nums의 index를 찾으세요. 만약 target이 배열 내에 존재하지 않는다면 -1을 리턴하세요. 테스트케이스 nums = {-1, 0, 3, 5, 9, 12} target = 9 output: 1 nums = {-1, 0, 3, 5, 9, 12} target = 2 output: -1 해설 및 풀이 로직 배열의 양 끝에 Left, right를 지정하고, 그 중앙에 위치한 값을 mid로 설정한다. target이 mid보다 크다면, left~mid구간을 탐색하며, target이 mid보다 작다면, mid~right구간을 탐색한다. 탐색하는 범위(길이)가 2가 될때까지 이를 반복한다. left, right값을..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cZ26Qn/btrxLSjoeD2/KEN9FqTD89KiTkzqLJDpsk/img.png)
요즘 리트코드를 꾸준히 풀려 버릇하고 있습니다. 친구의 소개로 흥미로운 문제가 있어 고전하며 풀이에 성공하였네요. 혹, 나중에 비슷한 문제가 나올때 복기하기 위해서 알고리즘 문제풀이를 하나씩 남겨보려고 합니다. 해당 문제는 리트코드 홈페이지(이곳)에서 확인할 수 있습니다. LRU Cache 아래의 조건을 만족하는 자료구조를 설계하세요. LRU Cache class를 구현하세요. 메소드 구현 - LRUCache(int capacity) LRU 캐시를 양수 크기만큼 생성하여 초기화합니다. 메소드 구현 - int get(int key) key에 해당하는 value가 존재한다면 해당 value를 반환하고, 그렇지 않다면 -1을 반환합니다. 메소드 구현 - void put(int key, int value) ke..