일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Cloud Engineer
- Java
- Terraform
- DP
- 나무 조경
- gitlab
- ECS
- 자격증
- 배포
- docker
- CI/CD
- phi squared
- spring boot
- 파이프라인
- aws ecs
- gitlab runner
- AWS
- 코딩테스트
- resultMap
- 소프티어
- 자동화
- 나무섭지
- IAC
- Saa
- 자바
- cloud
- softeer
- 도커
- dfs
- 백준
- Today
- Total
목록Java (11)
성장하는 개발자의 블로그
https://softeer.ai/practice/9496 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 이 문제는 지레 겁을 먹고 복잡하게 생각하다가 시간을 낭비한 문제이다. 최근 들어 특정 알고리즘 분류의 문제를 풀거나 간단한 구현 문제를 잘 풀지 않았던게 패착이었고 처음 풀이 당시 deque 등 다양한 자료구조등 을 이용해 풀려고 시도했었다. 당시 풀이는 이런 방향이었다. public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); ArrayList cars = new ArrayList(); Queue q = new LinkedList()..
https://www.acmicpc.net/problem/12865 DP에 유형에 약한 편이라 처음 이 문제를 풀 때 점화식 구성에 있어서 시간이 좀 오래 지체되었다. 처음에는 배낭이 견딜 수 있는 무게의 시작을 0부터 시작하고 하였는데 잘 풀리지 않았었고, 고민을 하다가 역순으로 최대 무게에서 감소하는 점화식을 적용하니 풀린 문제이다. 아래는 정답에 해당하는 코드이다. public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); int[] dp = new int[K + 1]; // dp[w..
https://softeer.ai/practice/7594 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 이 문제는 DFS 알고리즘을 이용하여 푼 문제이다. 이전 문제들과 다르게 같은 레벨임에도 불구하고 비교적 쉬운 문제였기 때문에 금방 풀렸던 문제이다. 처음에는 쌍을 짓는 것까지 DFS 안에 묶어서 시도했으나 이 방법은 실패하였고 이후 가능한 모든 쌍을 도출 후 이를 이용하여 푼 문제이다. 아래는 해당 코드이다. public class Solution { static class Pair { int x1, y1, x2, y2, beauty; public Pair(int x1, int y1, int x2, int y2, int beauty) { ..
mybatis 를 이용하여 프로젝트 구성 중 한 번에 여러 select 문을 가져와야하는 경우가 생겼다. 물론 여러 mapper 메소드를 이용하여 할 수 있었지만 이렇게 구성해야하는 이유가 있었다. 이유를 나열해보자면, 1. 통계 데이터를 위한 임시테이블 활용으로 임시테이블에서 여러 개의 select 문 필요 2. 한 트랜잭션 내에서 데이터베이스 왕복 횟수를 줄이기 위함 3. 이에 따른 네트워크 비용 감소 이러한 이유로 한 프로시저에서 여러 select 를 가져오는 방법을 찾게 됐다. 이 글을 보는 사람들은 자신의 프로젝트에 맞는 방법을 적용하기를 바란다. 한 번에 여러 select 를 처리하기 위해서는 저번 resultmap 활용 법 글과 비슷한 방식으로 구성하였다. https://zxzc1297.ti..
https://softeer.ai/practice/7649 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 이 문제는 LCS 알고리즘과 DFS 알고리즘을 이용하여 푼 문제이다. 우선적으로 처음 노드를 추가할 때 문제를 제대로 이해하지 못하고 한 번 지나간 노드는 다시 올라갈 수 없다 생각하여 단방향으로 추가하였는데 이 부분으로 인하여 상당히 시간을 소요를 많이 했다. 또 LCS 알고리즘을 쓰는 과정에서 시간복잡도를 개선하지 못하고 써 시간초과가 난 부분도 있다. 우선 아래 코드는 실패를 했던 부분이다. graph = new ArrayList(); for (int i = 0; i ()); } // 간선 정보 입력 for (int i = 0; i 역방향의..
https://softeer.ai/practice/7697 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 이 문제는 처음에 한 개의 큐로 시도하려 했으나 실패하여 고민하다가 결국 queue와 deque 를 혼합하여 문제를 풀이하였다. 처음에는 아래와 같은 방식으로 한가지 큐로 시도하였었다. ////========= 실패한 방식 =========////public static void solution1(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); Queue q = new LinkedList(); //큐에 현재 순서 넣기 for(i..
https://softeer.ai/practice/7726 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 처음에 이 문제를 풀 때 유령과 남우를 같이 이동시키면서 문제를 풀었었는데 이 방법은 고려할 것도 많고 풀이가 나오질 않아 좀 오래걸렸던 문제였다. 결국 문제는 각 지점에 유령이 그 지점에 도달하는 최소시간을 넣기위해 BFS로 각 지점에 최소시간을 넣었고 남우가 다시 시작점에서 BFS를 돌면서 해당 지점에 도달하는 시간이 유령보다 느리다면 못가는 기준을 걸고 BFS로 도착지까지 이동하는 코드를 사용하였다. 아래는 해당 코드이다. Scanner scanner = new Scanner(System.in); n = scanner.nextInt(); ..

Checked Exception 과 Unchecked Exception의 차이를 알아보기 전에 우선 예외에는 무엇이 있는지 살펴보자. 예외는 세 가지 예외로 나누어 볼 수 있다. 1. 체크 예외 (Checked Exception):컴파일러가 강제로 처리하도록 요구하는 예외이다.try-catch 블록이나 메서드 시그니처에 throws 문으로 처리하거나 전달해야 한다.주로 외부 요인 (파일 입출력, 네트워크 연결 등)으로 인한 예외 상황을 나타낸다.프로그래머가 예외 처리를 강제함으로써 프로그램의 안정성과 예측 가능성을 높이는 데 기여한다. 아래예제는 Checked Exception의 자바 예제이다. public class CheckedExceptionExample { public static void ..
mybatis 를 사용하여 개발 도중 단순한 select 해서 나온 결과가 json안의 json 형태의 데이터로 나와야하는 경우가 있었다. 단순하게 말하자면 join을 하여 select한 결과가 그룹 1, 그룹 2 등으로 나누어져 반복문을 돌려야 했고, js에서 ajax로 불러왔을 때 반복문을 돌리면서 그룹별로 돌릴 필요가 있었기에 result 자체를 묶어서 보내고 싶었다. 즉, java의 자료형으로 쓰자면 List> 의 형태에서 Object 중 하나가 다시 List> 의 형태로 사용하고 싶었다. 이를 위해 우선 model을 구성하였다.import lombok.Data;import java.util.List;@Datapublic class CustomGroup { private int groupSe..
https://www.acmicpc.net/problem/2449 문제최대 K가지의 서로 다른 색을 표현할 수 있는 전구들이 있다. 이 전구 N개를 다음의 그림과 같이 한 줄로 배치하여 서로 연결한다. (동그라미 안의 숫자는 전구의 색을 의미한다) 각 전구는 스위치가 있어서 전구의 색을 임의의 색으로 바꿀 수 있다. 하나의 전구 색을 바꾸는 경우에는, 색이 바뀌는 전구에 인접한 전구가 같은 색이면, 이 전구의 색도 같이 바뀌게 되며 인접한 전구가 다른 색이 나올 때까지 계속 바뀌게 된다. 예를 들어, 위의 그림에서 4번 전구의 색을 2번 색으로 바꾸면, 5번 전구가 4번 전구와 같은 색이었으므로 2번 색으로 바뀌고, 6번 전구도 5번 전구와 같은 색이었으므로 2번 색으로 바뀌게 된다. 즉, 4번 전구의..