끝없는 진화의 여정

Archive

[Java] 코드트리: 싸움땅 13 Apr 2024 인기 게임인 싸움땅은 다음과 같은 방식으로 진행됩니다. 게임은 n * n 크기의 격자에서 진행되며, 각각의 격자에는 무기들이 있을 수 있습니다. 초기에는 무기들이 없는 빈 격자에 플레이어들이 위치하며 각 플레이어는 초기...
[Java] 코드트리: 코드트리 빵 10 Apr 2024 최근 코드트리 빵이 전국적으로 인기를 얻어 편의점에서 해당 빵을 구하기 힘들어졌습니다. 빵을 구하고자 하는 m명의 사람이 있는데, 1번 사람은 정확히 1분에, 2번 사람은 정확히 2분에, …, m번 사람은 정확히 m...
[Java] 코드트리: 포탑 부수기 09 Apr 2024 N×M 격자가 있고, 모든 위치에는 포탑이 존재합니다. (즉, 포탑의 개수는 NM개) 각 포탑에는 공격력이 존재하며, 상황에 따라 공격력이 줄어들거나 늘어날 수 있습니다. 또한, 공격력이 0 이하가 된다면, 해당 포탑은 부서지며...
[Java] 코드트리: 메이즈 러너 05 Apr 2024 M명의 참가자가 미로 탈출하기 게임에 참가하였습니다. 미로의 구성은 다음과 같습니다. 미로는 N×N 크기의 격자입니다. 각 위치는 (r,c)의 형태로 표현되며, 아래로 갈수록 r이 증가, 오른쪽으로 갈수록 c가 증가합니다. 좌상단은 (1,1)입니다. 미로의...
[OS] 인터럽트(Interrupt) 란? 02 Apr 2024 인터럽트란? Interrupt : 방해하다 일을 하다가 누가 말을 걸면(방해하면) 하던 일을 멈추고 그 사람을 보고 이야기를 할 것이다. 컴퓨터과학에서 인터럽트도 똑같다. CPU가 작업 도중에 급하게 다른 일을 처리하고자 할 때...
[Java] 코드트리: 왕실의 기사 대결 14 Mar 2024 왕실의 기사들은 L×L 크기의 체스판 위에서 대결을 준비하고 있습니다. 체스판의 왼쪽 상단은 (1,1)로 시작하며, 각 칸은 빈칸, 함정, 또는 벽으로 구성되어 있습니다. 체스판 밖도 벽으로 간주합니다. 왕실의 기사들은 자신의 마력으로...
[Java] 코드트리: 루돌프의 반란 07 Mar 2024 1번부터 P번까지 P 명의 산타들이 크리스마스 이브를 준비하던 중, 산타의 주요 수송수단인 루돌프가 반란을 일으켰습니다. 루돌프는 산타들을 박치기하여 산타의 선물 배달을 방해하려고 합니다. 산타들은 루돌프를 잡아서 크리스마스를 구해야 합니다! (1)...
[Java] 백준 2064번: IP 주소 05 Mar 2024 풀이 방법 IP주소와 Subnet mask에 대한 상관관계에 대한 이해가 있으면 난이도가 확 낮아지는 문제이다. 비트마스킹을 활용해 AND연산으로 주소의 최솟값과 최댓값을 도출한 뒤, 최솟값과 최댓값이 같다면 네트워크 주소에 계속 추가한다. 하지만...
[Java] 백준 1194번: 달이 차오른다, 가자. 04 Mar 2024 풀이 방법 비트마스킹이라는 알고리즘을 이용하여 풀었던 문제이다. 열쇠인 a 부터 f 까지를 표현하기 위해 000000(열쇠 아무것도 없는 상태) ~ 111111(모든 열쇠를 가지고 있는 상태)를 사용한다. 111111은 10진수로 63이기 때문에 64개의...
[Java] 백준 9184번: 신나는 함수 실행 02 Mar 2024 풀이 방법 문제에서 주어진 재귀 함수를 구현하는 문제이다. psuedo코드를 언어에 맞게 최적화하는 것 뿐만 아니라 이미 계산된 값은 다시 계산할 필요 없도록 Memoization을 사용해야 하는 문제이다. a, b, c가 주어지고...
[Java] 백준 10866번: 덱 28 Feb 2024 풀이 방법 덱을 구현하는 문제이다. Java에서 지원하는 ArrayDeque 등을 사용할 수도 있었지만, 문제에서 원하는 것은 직접 구현이었기 때문에 앞뒤 양쪽에서 push와 pop이 가능한 Deque 자료구조를 직접 구현해봤다. 풀고 나서, 다른...
[Programming] 객체지향 프로그래밍 27 Feb 2024 객체 지향 프로그래밍이란? 객체란? An Object is a class instance or an array. 자바의 창시자인 제임스 고슬링이 작성한 The java Language Specification에는 객체(object)란 클래스의 인스턴스나 배열을 말한다고 정의되어 있습니다. 클래스와...
[Blog] Github Page 테마 수정 26 Feb 2024 Prologue github blog의 테마를 Wall-E로 바꾸며 기록한 일지입니다. 기존 블로그 테마가 갑자기 장난스럽게 느껴져 새로 테마를 고르던 중 Wall-E 테마를 알게 됐고, 디자인에 혹해서 수정하게 되었습니다. 기존 테마인 chirpy 보다...
[Java] 백준 1405번: 미친 로봇 26 Feb 2024 풀이 방법 로봇이 단순하게 이동하는 확률을 구하는 문제이다. 단순하게 이동하는 것은 기존 밟았던 땅을 또 밟지 않는 것이다. 이를 생각하며 예제1을 풀어보자. 처음은 동서남북 모두 1/4확률이니, 처음은 동쪽으로 간다고 생각했을...
[Java] 백준 17298번: 오큰수 25 Feb 2024 풀이 방법 자료구조 중 Stack을 사용해서 해결한 문제이다. 생각보다 어려웠다. 문제에서 말하는 것은 나보다 큰 애들 중 첫 번째로 만나는 애! 이기 때문에 시간초과가 나지 않으려면 앞으로 나아가면서 기존 배열을...
[JPA] 영속성 컨텍스트(Persistence Context) 11 Sep 2023 영속성 컨텍스트란? 엔티티를 영구 저장하는 환경을 뜻한다. 쉽게 생각하면 영속화(DB에 저장)하기 전에 잠시 맡아두고 있는 친구라고 할 수 있겠다. EntityManager.persist(); // 영속성 컨텍스트에 저장 영속성 컨텍스트는 Java 어플리케이션과 DB 사이에...
[Java] Record 01 Aug 2023 들어가기 전에 Java에서 레코드(Record)란 보일러플레이트 코드를 최소화하기 위해 만들어졌다. 보일러플레이트 코드(Boilerplate Code) : 최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드를 말한다. 예를 들어 이름, 나이, 주소 를 담고...
[Java] 직렬화(Serialization) 20 Jul 2023 들어가기 전에 객체를 저장하거나 메모리, 데이터베이스 혹은 파일로 옮기려면 어떻게 해야할까? 각자 PC의 OS(윈도, 리눅스 등…)마다 서로 다른 가상 메모리 주소 공간을 사용하기 때문에, 원시 타입이 아닌 참조 타입의 데이터들은...
[Java] Thread의 활용 14 Jul 2023 들어가기 전에 쓰레딩쓰레딩 Promotion (자동 형변환, 묵시적 형변환) 묵시적이란 ‘말이나 행동으로 직접 드러내지 않고 은연중에 뜻을 나타내보이는 것’ 을 뜻한다. 묵시적 형변환은 개발자가 모르게 Java 자체적으로 형변환을 해준다는 뜻이다. 묵시적...
[Java] Promotion & Casting 10 Jul 2023 들어가기 전에 Java는 데이터 타입을 지정하면 그에 맞는 값을 대입해야 합니다. 예로 다음과 같은 코드가 있습니다. int a = 1; // 정상 int b = 1.5; // 오류 System.out.println(1 +...
[AWS] EC2 사용량 85% 이상 과다사용 이슈 29 Jun 2023 증상 AWS EC2 서버의 용량 30GiB 중 85%를 초과하여 사용하고 있다고 메일이 와서 서버 내의 필요없는 내용들을 관리하는 작업이 필요한 상황이었다. 오류 추정 EC2의 프리티어 용량 30GiB를 사용하고 있었고, 2GB...
[Java] 오토 박싱과 오토 언박싱 27 Jun 2023 들어가기 전에 우리가 프로그램 개발할 때 여러 자료형을 많이 사용하게 된다. 보통은 원시 타입인 int, double 등의 자료형을 사용하는데, Generic을 사용하는 컬렉션들(List, Map 등)을 사용할 때는 원시 타입을 사용할 수...
[Java] Call By Value vs Call By Reference 13 Jun 2023 들어가기 전에 Call By Value와 Call By Reference는 함수에서 다른 함수로 값을 넘겨줄 때 중요한 이론이다. C언어 같은 경우에는 포인터를 사용하기 때문에 Value를 넘겨줄 수도, Reference를 넘겨줄 수도 있는데 Java는...
[Java] 백준 16174번: 점프왕 쩰리 (Large) 09 Jun 2023 풀이 방법 쩰리씨를 오른쪽 아래 -1로 표시된 곳까지 보내는 문제이다. 이 문제에서 중요한 점은 두 가지다. 이동할 수 있는 칸 수는 현재 밟고 있는 칸에 쓰여 있는 수 만큼이다. 오른쪽...
[Java] 백준 2583번: 영역 구하기 05 Jun 2023 풀이 방법 일반적인 BFS문제이다. 그림을 그린 영역을 모두 1로 표시해 두고, 모눈종이 전체를 BFS를 돌려 몇 개의 격리된 공간이 나오는지 구하는 문제이다. 풀이 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Collections;...
[Java] 백준 1759번: 암호 만들기 03 Jun 2023 풀이 방법 주어진 문자들로 암호를 조합해서 만들어야 한다. 주의 사항으로는 중복되는 것은 없다고 하니, 조합 알고리즘을 사용해 모든 가능한 암호를 뽑아냈다. 그 다음, 자음의 수는 2개 이상이고 모음의 수는 1개...
[Java] 백준 11000번: 강의실 배정 30 May 2023 풀이 방법 pq 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.util.PriorityQueue; import java.util.StringTokenizer; public class BOJ_11000_강의실_배정 { static class Lesson...
[Java] 백준 2138번: 전구와 스위치 28 May 2023 풀이 방법 greedy로 해결할 수 있다는 힌트를 보고 생각해봤다. 스위치를 누르면 양 옆의 전구를 포함해 3개의 전구의 상태가 뒤바뀐다. 하지만 첫 번째 전구와 마지막 전구는 한 쪽 옆면이 없기 때문에...
[Spring] Spring Security .hasRole() 미적용 이슈 24 May 2023 증상 @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig { private final JwtTokenProvider jwtTokenProvider; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http // REST API이므로 basic auth 및 csrf 보안을 사용하지...
[Spring] Spring Security filter 2번 발생 24 May 2023 증상 토큰 관련 클래스인 JwtTokenProvider에 작성해둔 토큰 검증 메서드에서 적절하지 않은 토큰을 넣고 요청했을 때 Exception이 발생하게 되면, 넘어가는 Exception 메소드에서 상황에 따라 다른 내용이 출력되게 된다. 이 출력되는 내용이...
[Spring] Spring Security .antMatchers() 메소드 없음 23 May 2023 증상 @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig { private final JwtTokenProvider jwtTokenProvider; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .httpBasic().disable() .csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() .antMatchers("/members/login").permitAll() .antMatchers("/members/test").hasRole("USER") .anyRequest().authenticated() .and()...
[Java] 백준 15591번: MooTube (Silver) 22 May 2023 풀이 방법 영상(정점)까지 가는 경로는 무조건 존재하며 서로 연결되어 있는 N-1개의 쌍으로 나타내는 것을 보고 최소 스패닝 트리(MST)를 파악할 수 있었다. 인접 행렬로 입력값을 받은 다음 bfs를 사용해서 문제를 해결할...
[Java] 백준 13901번: 로봇 21 May 2023 풀이 방법 BFS를 통해 조건에 따라 이동하면 된다. 특이점으로는 이동할 수 없다면 방향을 돌려야 하기 때문에 BFS 메서드 안에서 else { d++; d%=4 } 로 처리해주었다. 풀이 코드 import java.io.BufferedReader;...
[Java] 백준 20006번: 랭킹전 대기열 16 May 2023 풀이 방법 플레이어 다수가 1개의 방에 들어있고 다수의 방이 대기열에 들어있으므로 이중 리스트를 사용해서 문제를 해결하였다. 특이점으로는 출력할 때 닉네임 사전순으로 정렬해야 하기 때문에 Comparable를 구현해서 해결하였다. 풀이 코드 import...
[NGINX] *1 conect() failed 이슈 13 May 2023 증상 2023/05/08 13:12:46 [error] 29#29: *1 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: , request: “POST /api/user/login HTTP/1.1”, upstream: “http://xxx.xxx.xxx.xxx:8000/user/login”, host: “xxx.xxx.xxx.xxx” 오류 추정 도저히...
[Java] 백준 10836번: 여왕벌 10 May 2023 풀이 방법 이 문제는 힌트가 있다. 바로 모든 입력에서 이렇게 읽은 값들은 감소하지 않는 형태이다. 라는 것으로, 이를 다르게 해석하면 왼쪽 아래에서 시작해서 -> 왼쪽 상단 꼭지점을 거쳐 -> 오른쪽...
[Spring] Failed to parse multipart servlet request 08 May 2023 증상 사진 올리기 기능을 postman을 이용하여 테스트하려는데 분명 어제까진 없던 문제인 Failed to parse multipart servlet request 가 발생하여 당황스러웠다. org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:122) ~[spring-web-6.0.6.jar:6.0.6]...
[NGINX] *1 conect() failed 이슈 08 May 2023 증상 2023/05/08 13:12:46 [error] 29#29: *1 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: , request: “POST /api/user/login HTTP/1.1”, upstream: “http://xxx.xxx.xxx.xxx:8000/user/login”, host: “xxx.xxx.xxx.xxx” 오류 추정 도저히...
[Jenkins] Spring 프로젝트 Gradle 빌드 이슈 04 May 2023 증상 gradle plugin 버전이 맞지 않다는 오류 발생 → 스프링부트3을 사용하고 있는데 이는 자바 17버전 이상을 사용해야 한다. 하지만 자바 17과 gradle 3.0.4버전과는 맞지 않다는 오류 발생 오류 추정 Jenkins에서...
[Java] 백준 14218번: 그래프 탐색 2 04 May 2023 풀이 방법 Graph와 BFS를 사용해서 해결할 수 있는 문제이다. 풀이 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class BOJ_14218_그래프_탐색_2 { static...
[Java] 백준 3187번: 양치기 꿍 29 Apr 2023 풀이 방법 BFS로 풀 수 있는 문제이다. 울타리 내에서 BFS를 돌려 늑대의 수와 양의 수를 비교한다. 살아남은 개체는 더해주고 출력해주면 끝 풀이 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import...
[Spring] MySQL Access denied for user 이슈 26 Apr 2023 증상 spring boot ↔ mysql 간 연결 문제가 있었다. 사용자가 가진 권한을 통한 데이터베이스 접근이 거부되었다고 나왔다. 오류 추정 해당 사용자가 없거나, 사용자의 접근 권한 설정이 잘못된거라고 생각했다. 해결 방법...
[Spring] contextLoads () FAILED 오류 25 Apr 2023 증상 ./gradlew build 명령어를 실행하여 스프링 프로젝트를 빌드하려고 했는데 위와 같은 오류가 발생하였다. 오류 추정 KoinsectBackApplicationTests > contextLoads () FAILED 로그를 잘 살펴보니 ApplicationTest에서 문제가 있다고 추정할 수 있었다. 해결...
[Java] 백준 17086번: 아기 상어 2 24 Apr 2023 풀이 방법 BFS의 특성을 알고 있다면 쉽게 풀 수 있는 문제이다. BFS는 지점으로부터 한 칸씩 넓게 퍼지는 특성을 가지고 있는데, 이를 활용하면 안전 거리를 쉽게 도출할 수 있다. 풀이 코드...
[AWS] Spring HikariPool-1 - Thread starvation or clock leap detected 이슈 21 Apr 2023 증상 2023-04-24T05:56:00.913Z ERROR 1 --- [io-8080-exec-10] c.k.k.controller.ExceptionController : Controller ERROR > org.springframework.web.HttpRequestMethodNotSupportedException org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' is not supported at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:265) ~[spring-webmvc-6.0.6.jar!/:6.0.6] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:441) ~[spring-webmvc-6.0.6.jar!/:6.0.6] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:382) ~[spring-webmvc-6.0.6.jar!/:6.0.6] at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal(RequestMappingInfoHandlerMapping.java:126)...
[Java] 백준 2504번: 괄호의 값 19 Apr 2023 풀이 코드 스택을 사용하는 문제 중 하나이다. (나 [등 여는 괄호가 나온다면 스택에다가 쌓고, 반대로 )나 ]가 나온다면 검사를 하게 된다. 만약 ()나 []로 되지 않고 (]등으로 짝이 맞지 않는다거나,...
[Java] 백준 16988번: Baaaaaaaaaduk2 (Easy) 13 Apr 2023 풀이 방법 백트래킹과 BFS를 사용한 문제이다. 먼저 바둑판을 입력받는다. 중간에 빈 곳(0)이 있다면 바둑돌을 놓을 수 있는 곳이니 리스트에 추가한다. 다음에 놓을 수 있는 모든 수를 for문으로 돌리면서 비어있는 두...
[Java] 백준 14658번: 하늘에서 별똥별이 빗발친다 10 Apr 2023 풀이 방법 도저히 해결 방법을 몰라서 참고한 문제이다. 두 별의 꼭지점을 만들어 트램펄린을 펴는게 가장 좋다고 한다. (논리적인 이유는 찾지 못했음) 그렇기 때문에 별1.x, 별2.y / 별2.x, 별2.y로 묶으면 된다....
[Java] 백준 1707번: 이분 그래프 05 Apr 2023 풀이 방법 dfs로 해결할 수 있는 문제이다. 인접한 정점은 다른 색깔로 표현(인접하지 않도록 분할)할 수 있으면 이분 그래프다. 이분 그래프를 판별하기 위해 각 정점은 1 또는 -1 값(다른 색)을 가지도록...
[Java] 백준 16235번: 나무 재테크 22 Mar 2023 풀이 방법 푸는 데 정말 오래 걸렸던 문제이다. 나무의 정보는 배열의 최초 인덱스인 (0,0) 이 아닌 (1,1) 부터 들어오기 때문에 배열을 [N+1][N+1]로 선언하였는데, 마지막 겨울 영양소 추가 부분에서 이중for문을 0...
[Java] 백준 14888번: 연산자 끼워넣기 18 Mar 2023 풀이 방법 주어진 숫자들 사이에 연산자를 임의로 끼워넣어 계산된 결과가 최대, 최소를 구하는 문제이다. 여기서 연산자의 우선순위에 따라 계산하지 않고 순서대로 계산한다는 조건이 있었다. 입력된 수 사이사이에 연산자만 순열로 가능한...
[Java] 백준 11279번: 최대 힙 15 Mar 2023 풀이 방법 최대 힙 구현 문제이다. 힙 자료구조는 완전이진트리로 표현할 수 있다. 최대 힙은 부모 노드가 자식 노드보다 크거나 같고, 최소 힙은 부모 노드가 자식 노드보다 같거나 작다. Priority Heap으로...
[Spring] 스프링 컨트롤러 11 Mar 2023 Intro Controller란 직역하면 제어장치이다. 이는 프론트엔드(사용자에게 보여지는 부분)에서 받은 요청을 어떻게 처리할 것인가?를 Controller에서 한다고 보면 된다. Controller는 Front Controller와 Controller로 나누어진다. Front Controller? 그게 뭔데? Front Controller 디자인 패턴...
[DB] 데이터 모델링이란? 06 Mar 2023 주제 - 데이터 모델링에 관해 미래에 까먹었을 나에게 설명하는 글 데이터 모델링에 대해 설명하는 여러 글을 볼 때 데이터 모델링이란 다음과 같이 설명한다 : 주어진 개념으로부터 논리적인 데이터 모델을 구성하는...
[Web] Token 기반 인증 03 Mar 2023 Token 기반 인증 방식이 생긴 계기 - 서버 기반 인증의 한계 HTTP 프로토콜은 connectionless, stateless 하다는 특징을 가지고 있어 기존에는 세션을 가지고 사용자 정보를 인증했었다. 하지만 사용자가 늘어나면서 다음과 같은...
[Java] Garbage Collection 03 Mar 2023 가비지 컬렉션이란? C/C++ 언어에서는 객체를 생성(메모리 할당)한 후 사용하지 않는(사용이 끝난) 객체를 개발자가 free()라는 함수로 직접 메모리 해제를 해줘야 했다. 그렇지 않으면 메모리 누수가 발생하고 이는 다른 프로그램에 영향을 끼칠...
[Java] 프로그래머스: 소수 찾기 02 Mar 2023 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때,...
[Java] 프로그래머스: 모의고사 28 Feb 2023 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3,...
[Java] 백준 2447번: 별 찍기 - 10 26 Feb 2023 풀이 방법 재귀함수를 이용하는 별 찍기 문제이다. 중간을 비워두기 위해 (i/num)%3==1 && (j/num)%3==1이라면 공백을 채우고, 나머지는 별을 찍도록 했다. System.out.println()을 사용하면 시간 초과가 나니 StringBuilder나 BufferedWriter를 사용해야 한다. 풀이 코드...
[Web] 쿠키와 세션 23 Feb 2023 Cookie와 Session이 왜 만들어졌는가? HTTP 프로토콜은 connectionless, stateless 한 특성을 가진다. connectionless : 클라이언트가 요청을 한 후, 응답을 받으면 연결을 끊어버리는 특징. 클라이언트가 서버에 request를 보내면 서버는 클라이언트에게 요청에 맞는...
[Java] 프로그래머스: H-Index 23 Feb 2023 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상...
[Java] 자바 컴파일 과정 22 Feb 2023 프로그램이 실행되는 과정 컴파일 타임 환경 자바 코드 작성(.java) 자바 컴파일러(javac)가 자바 소스를 컴파일 -> 바이트 코드(.class)로 변환 바이트 코드(.class)를 JVM의 클래스 로더에 전달 런타임 환경 클래스 로더에서는 동적로딩(Dynamic Loading)을...
[Java] 프로그래머스: 다리를 지나는 트럭 16 Feb 2023 문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며,...
[Java] 프로그래머스: 프린터 15 Feb 2023 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게...
[Java] 프로그래머스: 최소직사각형 07 Feb 2023 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기...
[Java] 프로그래머스: 올바른 괄호 07 Feb 2023 문제 설명 괄호가 바르게 짝지어졌다는 것은 ‘(‘ 문자로 열렸으면 반드시 짝지어서 ‘)’ 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ”()()” 또는 “(())()” 는 올바른 괄호입니다. ”)()(“ 또는 “(()(“ 는 올바르지 않은...
[Java] 프로그래머스: 기능개발 07 Feb 2023 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는...
[Java] 프로그래머스: 같은 숫자는 싫어 07 Feb 2023 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을...
[Java] 백준 17276번: 배열 돌리기 01 Feb 2023 풀이 방법 배열 돌리기 문제이다. 왼쪽 대각선 -> 중앙 세로선 중앙 세로선 -> 오른쪽 대각선 오른쪽 대각선 -> 중앙 가로선 중앙 가로선 -> 왼쪽 대각선으로 바꾸면 되는 문제다. 풀이 코드...
[Java] 백준 1260번: DFS와 BFS 30 Jan 2023 풀이 방법 오랜만에 올리는 풀이일지다. 입력받은 정점(N)과 간선(M)을 인접행렬로 만든 후, DFS와 BFS의 특성을 이용해 시작지점(V)부터 탐색하면 되는 문제이다. map[from][to] = map[to][from] = 1 을 쓰면 인접행렬을 더욱 쉽게 만들...
[Java] 백준 1920번: 수 찾기 26 Oct 2022 풀이 방법 탐색 문제이다. 재귀 함수를 곁들인 이분 탐색을 사용해서 문제를 해결했다. 다른 탐색 문제도 풀어보고 싶다! 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Collections; import...
[Java] 백준 10845번: 큐 23 Oct 2022 풀이 방법 큐 구현 문제이다. 스택을 배열로 구현한 것처럼, 큐도 배열로 구현하였다. 선입선출큐을 특징으로 가지는 큐를 구현하기 위해서 pop 명령을 실행했을 때, 배열을 앞으로 하나씩 당기도록 만들었다. 풀이 코드 import...
[Java] 백준 10828번: 스택 23 Oct 2022 풀이 방법 스택 구현 문제이다. 배열로 스택을 구현하였다. 리스트로 구현하는 게 더 편할 듯 싶은데 제한 시간이 0.5초라 배열이 적절하다고 생각했다. 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import...
[Java] 백준 11047번: 동전 0 16 Oct 2022 풀이 방법 간단한 그리디 알고리즘 문제이다. 거꾸로 생각해서 가장 큰 동전부터 사용해서 0원 만들기를 하면 쉽게 풀 수 있다. 예제 1번은 4200원이니 4200원보다는 적지만 그 중에 가장 큰 액수부터 순차적으로...
[Blog] Github Page 블로그 고도화 오류 해결 10 Oct 2022 만들어놓고 바빠서 글만 올리던 github 블로그 고도화를 하였습니다. 사용한 테마인 chirpy의 공식 위키를 찾아보면서 front matter에 대해 알게 됐습니다. front matter에 관해서 front matter란 해당 post에 대한 정보를 글 최상단에...
[Blog] Chirpy Theme 새로운 탭 추가 10 Oct 2022 새로운 탭 생성 방법 chirpy 테마에서 새로운 탭 생성하는 법 및 아이콘 삽입 방법입니다. _tabs/ 폴더를 보면 왼쪽에 표시되는 탭들에 대한 정보를 파일로 만들어놓았습니다. 들어가보면 기본적으로 yaml 파일 형식으로 작성되어...
[Java] 백준 1182번: 부분수열의 합 09 Oct 2022 문제 N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수를 나타내는...
[Java] 백준 2839번: 설탕 배달 05 Oct 2022 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에,...
[Java] 백준 1759번: 암호 만들기 05 Oct 2022 문제 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로...
[Java] 프로그래머스: 가장 큰 수 02 Oct 2022 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026,...
[Java] 프로그래머스: K번째수 28 Sep 2022 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j...
[Java] 백준 1991번: 트리 순회 27 Sep 2022 문제 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG //...
[Java] 백준 1026번: 보물 19 Sep 2022 문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수...
[Java] 백준 14425번: 문자열 집합 18 Sep 2022 문제 총 N개의 문자열로 이루어진 집합 S가 주어진다. 입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열의 개수 N과...
[Java] 프로그래머스: 게임 맵 최단거리 15 Sep 2022 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의...
[Java] 프로그래머스: 타겟 넘버 14 Sep 2022 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음...
[Java] 백준 2231번: 분해합 08 Sep 2022 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의...
[Retro] 09/07 회고 07 Sep 2022 Vol. 1 새로운 프로젝트(특화 프로젝트)에 들어가게 됐다. 인공지능(영상) 을 경험해 보고 싶어 이쪽으로 발길을 향했지만… 결코 쉽지 않아(개념이 너무 어렵다) 백엔드를 구축하면서 차차 공부하며 AI팀을 도와주는 것으로 정했다! 하지만 반년...
[Spring] JPA 공부 21 Jul 2022 JPA는 표준 ORM(Object-Relational Mapping)으로 Hibernate라는 ORM 프레임워크를 사용해서 구현한다. EntityManagerFactory 는 리소스를 많이 사용하기 때문에 하나만 생성에서 애플리케이션 내부에서 전체 공유해서 사용 EntityManager은 한번 쓰고 버려야 함. 여러 쓰레드에서 공유하면...
[Retro] 07/19 회고 19 Jul 2022 Spring Boot project 생성 및 빌드 자동화 도구 고르기 스프링 부트 프로젝트를 만드는 것 까지는 정말 쉬운데… maven만을 사용하다가 gradle 을 사용하게 되니 처음 알게 된게 있었다. maven «« gradle Maven에...
[Blog] Github Page 개설 및 후기 28 Jun 2022 안녕하세요. Github Page 를 사용한 블로그를 개설하였습니다. 여기에는 여러 가지 개발 일지나 해결한 문제 등을 적는 기술블로그로 사용하고자 합니다. 첫번째 게시물은 개설을 자축하며 이 블로그를 만들기까지 헤매었던 것들을 적어보려 합니다....