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