본문 바로가기

전체 글70

[JAVA/LeetCode/278] First Bad Version / 이분탐색 First Bad Version - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous v.. 2022. 12. 4.
[JAVA/백준/2343] 기타레슨 / 이분탐색 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 풀이 과정 처음에 갈피를 못잡아서 시간이 굉장히 오래 걸린 문제다 스터디원에게 문제 접근 방식을 듣고난 후 해결책을 찾았고 이분탐색에 대한 나의 고정관념을 깰 수 있었다 기존까지 풀었던 단순한 문제의 이분 탐색은 주어진 배열 내에서 최대 최소값을 찾는 문제였다 하지만 이번 문제는 배열을 그룹(블루레이)으로 나누고 그룹 내 요소 합의 최소값을 찾는 문제였기 때문에 요소 합의 최소를 이분 탐색으로 찾아야했다 따라서 배열 그룹의 합을 이진탐색으로 찾는 값(mid)으로 정하고.. 2022. 12. 2.
[JAVA/백준/1904] 01타일 / DP 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 우선 점화식을 세워 패턴을 파악하기 위해 발생할 수 있는 경우의 수를 세보았다 1 = 1 2 = 11 00 3 = 111 100 001 4 = 1111 1100 0011 1001 0000 5 = 11111 11100 11001 10011 00111 10000 00100 00001 이슈 1 전전칸에서 2칸이 늘어나는 경우를 생각해보자 2칸이 늘어나는 경우 xx 00 xx 11 x0 01(이 경우 이전 마지막 숫자가 0으로 바뀜) 이 세가지 경우가 추가될 수 있다 따라서.. 2022. 11. 28.
[JAVA/백준/24479] 깊이 우선 탐색1 / DFS 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 이슈 1 문제 이름에 대놓고 나와있듯이 DFS를 이용해 푸는 문제였다 평소처럼 간선들을 저장하기 위해 아래처럼 이중배열을 이용했다. private static int[][] branch; branch = new int[N+1]; for (int i = 0; i < M; i++) { st = new StringTokenizer(br.readLine()); int u = Integer.parse.. 2022. 11. 27.
[GithubActions] github actions란 / 기본구조와 사용법 github actions란? github 내의 커밋을 트리거로 CI/CD를 가능케함 (Jenkins를 대체 가능) Release나 Tag작업을 자동화 하는 데도 사용이 가능 무료버전은 work 내역의 유효기한이 6개월, 유료버전은 1년 github actions 사용해보기 .github/workflows/work-1.yml 이라는 파일을 먼저 생성 (빨간색의 디렉토리명은 고정) work-1이라는 work를 생성해보았다 (아래는 해당 파일의 내용) name: work-1 on: push: branches: - master jobs: hello1: runs-on: ubuntu-latest steps: - name: sayHi run: echo "Hi" - name: sayMyName run: echo "$.. 2022. 11. 24.
[SPRING] Spring의 Web Layer 서비스가 고도화 되면 기능과 구조가 복잡해져 코드가 길고 난해해진다. 실제로 스프링부트 프로젝트를 진행하면서도 기능이 추가 될수록 구조 자체가 복잡해졌고, 하나의 기능을 수정하려면 그 기능과 관련된 코드도 모두 갈아엎어야하는 경우가 발생했다... Spring의 구조와 MVC 패턴의 개념이 명확하게 잡히지 않아서 그런 것 같다 그래서 전에 사놓고 잊고 있엇던 [스프링부트와 AWS로 혼자 구현하는 웹 서비스] 책을 다시 꺼내서 공부해보았다 Spring Web Layer 스프링의 웹 계층은 5가지로 나뉜다. 책의 내용을 간단하게 요약하자면, 1. Web Layer 외부 요청과 응답을 담당하는 영역 대표적으로 @Controller가 있으며 이 외에도 @Filter, 인터셉터, @ControllerAdvice(모.. 2022. 11. 23.