728x90

Java 177

[Programmers] [1차] 캐시 - JAVA

[Programmers] [1차] 캐시 2018 KAKAO BLIND RECRUITMENT - LV2접근구현풀이데이터베이스 연산을 수행할 때 사용되는 1차 캐시를 구현하는 문제이다. 데이터베이스에 조회 연산을 수행할 때 조회한 뒤 1차 캐시에 저장하여 다음번 조회 시 1차 캐시에 들어있는 값을 바로 반환하며 조회 성능을 높일 수 있는 방법으로 현재 문제에서는 1차 캐시에서 조회 시 1의 수행시간을 가지고 데이터베이스에 직접 조회 시 5의 수행시간을 가지게 된다. 1차 캐시가 가득차 데이터를 교환해야 하는 경우 LRU 알고리즘을 사용해 교체하게 된다. LRU 알고리즘은 Least Recently Used로 가장 사용 횟수가 적은 데이터를 교체하는 방식이다. 그렇기 때문에 1차 캐시에서 조회가 일어날 경우 ..

[Programmers] PCCP 기출문제 4번 / 수식 복원하기 Java

[Programmers] PCCP 기출문제 4번 / 수식 복원하기 - LV 3접근브루트 포스풀이대망의 PCCP 기출문제의 마지막 문제로 프로그래머스 레벨 3으로 측정된 문제이다. 레벨 3인만큼 다른 문제에 비해 코드가 조금 복잡하고 테스트케이스 3문제에 계속 런타임 에러가 나 디버깅하며 푸는데 2시간 넘게 거의 3시간 가까이 걸렸던 문제이다. 문제의 내용은 고대 문명의 수식을 복원하는 것인데 주어지는 수식은 2~9 진법 체계를 따르며 답이 적혀 있는 수식들을 분석해 답이 적혀있지 않은 수식의 답을 유추하는 문제이다. 올 수 있는 답이 여러 개 라면 정답 자리에? 를 출력하고 확실한 하나의 답만 만족한다면 그 답을 수식과 함께 출력한다. List completeExpression = new ArrayLis..

[Programmers] PCCP 기출문제 3번 / 충돌위험 찾기 JAVA

[Programmers] PCCP 기출문제 3번 / 충돌위험 찾기 - LV 2접근구현풀이PCCP 기출문제의 3번 충돌위험 찾기 문제로 프로그래머스 레벨 2로 측정된 문제이다. 모든 로봇이 동시에 주어진 경로를 통해 움직일 때 충돌이 일어나는 횟수를 구하는 문제로 주목할 부분은 주어진 경로, 경유해야 할 포인트는 여러 개가 될 수 있다는 점과 최단 경로 이동을 위해 좌표는 r 이 항상 우선으로 이동해야 한다. 충돌의 경우 2대 이상의 로봇이 같은 좌표일 경우 충돌이 일어난 것이고 같은 좌표에 로봇이 몇 대가 있던 한 번의 충돌로 치며 같은 시간 다른 곳에서 일어난 충돌은 별도의 충돌로 4초 경 로봇 1, 3, 5이 (1, 2)에서 충돌하고 로봇 2, 4가 (5, 4)에서 충돌한 경우 4초에는 총 두 번 충..

[Programmers] PCCE 기출문제 10번 / 공원 Java

[Programmers] PCCE 기출문제 10번 / 공원 - LV 1접근그리디풀이PCCE 기출문제 10번 공원 문제로 사람들을 피해 가장 큰 돗자리를 펴는 문제이다. 2차원 배열을 탐색하며 가지고 있는 정사각형 돗자리 중 가장 큰 돗자리를 구해야 하는데 중첩문이 많이 나오는 문제이다. 이런 문제를 싫어하기도 하고 정말 생각한 대로 풀면 풀어지는 문제 이긴 하나 어쨌든 참 귀찮은 문제이다. int rows = park.length;        int cols = park[0].length;        int maxSize = -1;        Arrays.sort(mats);코드가 복잡하기 때문에 행과 열을 변수로 뽑아주고 돗자리의 크기를 저장할 변수를 선언했다. 돗자리의 크기는 정렬을 해주어 크기..

[Programmers] PCCP 기출문제 2번 / 퍼즐 게임 챌린지 Java

[Programmers] PCCP 기출문제 2번 / 퍼즐 게임 챌린지 - LV 2접근이진 탐색풀이프로그래머스 PCCP 기출문제 2번의 퍼즐 게임 챌린지 문제로 레벨 2의 난이도를 가진 문제이다. 이 문제는 제한 시간 내에 문제를 푸는데 필요한 최소한의 숙련도를 구하는 문제이다. 문제를 푸는 기준은 숙련도를 기준으로 결정되며 난이도 - 숙련도의 차만큼 문제 푸는 시간이 증가하게 되는 구조이다. 난이도가 3이고 숙련도가 1일 경우 숙련도가 난이도 보다 2 낮기 때문에 해당 문제를 2번 틀린 후 풀이에 성공하게 된다. 문제를 틀릴 경우 이전 문제를 다시 푼 다음 현재 문제를 풀 수 있어 이전 문제의 풀이 시간이 추가로 소요된다. 이전 문제가 5의 시간을 소요하고 현재 문제가 3의 시간을 소요할 경우 2번 틀린..

[Programmers] PCCP 기출문제 1번 / 동영상 재생기 JAVA

[Programmers] PCCP 기출문제 1번 / 동영상 재생기 - LV 1접근구현풀이PCCP 기출문제 1번 동영상 재생기 문제로 프로그래머스 레벨 1단계 문제이다. 동영상 재생 시 흔히 사용하는 10초 넘기기, 10초 이전, 오프닝 건너뛰기를 구현하는 문제로 동영상 시작과 끝 부분에 남은 시간이 10초 미만일 경우 동영상 시작 0분 0초, 동영상 마지막 위치로 해주어야 하는 익숙한 기능들을 구현하는 문제이다. 시간에 대한 계산이므로 자바 time의 LocalTime 객체를 사용해 문제를 풀어 주었다. String[] videoSplit = video_len.split(":"); LocalTime videoLenTime = getTime(videoSplit); String[] ..

[Programmers] PCCE 기출문제 9번 / 지폐 접기 JAVA

[Programmers] PCCE 기출문제 9번 / 지폐 접기 - LEVEL 1접근구현풀이이중 우선순위 큐를 찾으러 가면서 프로그래머스에 PCCE와 PCCP 기출문제가 업데이트된 것을 보고 가져왔다. PCCE 1~8번은 너무 간단한 문제들이라 패스하고 9, 10번을 푼 뒤 PCCP로 넘어갈 생각이다. 우선 이 문제는 지폐를 접어서 지갑에 넣는 문제로 구름, 프로그래머스, 백준 중에 어디서 풀어봤던 문제인 거 같으나 기억이 잘 나지 않는다. 특별한 알고리즘이 필요한 문제도 아니고 간단한 구현 문제로 어려운 0 레벨 쉬운 1 레벨 정도가 되는 거 같다.public static int solution(int[] wallet, int[] bill) {        int answer = 0;           ..

[Spring] JPA 개요

JPA (Java Persistence API) Java 애플리케이션에서 객체-관계 매핑(ORM) 기술을 사용하여 데이터베이스와 상호 작용하는 표준 APIJava EE (Enterprise Edition) 스펙의 일부로, 객체지향 프로그래밍과 관계형 데이터베이스 사이의 간극을 줄여줌JPA는 인터페이스의 모음이며, 실제 구현은 여러 ORM 프레임워크에서 제공주요 구현체Hibernate: 가장 널리 사용되는 JPA 구현체로, 풍부한 기능과 높은 성능을 제공EclipseLink: Eclipse Foundation에서 제공하는 구현체로, Java EE의 참조 구현OpenJPA: Apache Software Foundation에서 제공하는 오픈 소스 구현체SQL 중심 개발의 문제점상속 표현의 차이객체: 인터페이스..

백엔드/Spring 2024.09.07

[백준] AC JAVA

[백준] AC - Gold V 5430번접근Deque (양방향 큐)풀이정수 문자열을 받아 R(뒤집기) D(버리기) 연산을 수행한 후 결과를 출력하는 문제이다. 백준에서 푸는 첫 골드티어 문제로 문제 설명만 봐서는 매우 간단해 보여 어려운 문제인지는 잘 모르겠다. 우선 문제에 나오는 R(뒤집기) 연산이 시간을 다 잡아먹을 거 같기에 입력 값의 범위가 엄청나게 큰 값은 아니지만 물리적으로 정렬을 한다는 건 미련한 방법인 거 같았다. 그래서 포인터를 관리해 기본값으로 0을 주고 R 연산이 들어오면 배열의 마지막 값인 arr.length-1로 변경해 준다던가 하는 방법을 쓰면 될 거 같아 구현하는 중 생각해 보니 그냥 양방향 큐인 Deque (Double-ended Queue)를 사용하면 간단하게 해결되는 문제..

[백준] 케빈 베이컨의 6단계 법칙 JAVA

[백준] 케빈 베이컨의 6단계 법칙접근bfs풀이케빈 베이컨의 6단계 법칙이라는 문제로 간략하게 설명하자면 내가 저 사람을 몇 단계 거쳐야 알 수 있는가, 친구의 친구의 친구를 알기 위해선 친구 몇 명을 거쳐야 하는가를 구하는 문제이다. 연결에 대한 A와 B가 친구이면, B와 A도 친구라는 내용과 친구의 친구를 타고 들어가는 것에서 양방향 그래프 탐색을 해야 한다는 것을 알 수 있기에 다시 BFS와 DFS 문제 코드를 꺼내왔다.2024.08.26 - [알고리즘/코딩테스트-백준] - [백준] DFS와 BFS JAVA [백준] DFS와 BFS JAVADFS와 BFS1260번: DFS와 BFS (acmicpc.net)접근dfsbfs풀이이름에 나와 있는 것처럼 DFS와 BFS를 구현해 보는 문제이다.정점과 간선의..

728x90