| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 구현
- greedy
- 스프링
- JPA
- boj
- Backtracking
- programmers
- DP
- DynamicProgramming
- 깊이우선탐색
- BFS
- 이분탐색
- dynamic programming
- 우선순위큐
- DFS
- 동적계획법
- Spring
- 너비우선탐색
- ReactiveProgramming
- 그리디
- 브루트포스
- 네트워크
- Java
- 백트래킹
- Algorithm
- 알고리즘
- 프로그래머스
- 부분수열의합
- 백준
- Network
- Today
- Total
목록전체 글 (71)
옌의 로그
자바(Java) 기반으로 Spring Boot 서버를 개발해오다, 최근 코틀린(Kotlin)으로 넘어가게 되어 학습하며 남기는 기록이다.코틀린(Kotlin)?-> 실용주의(Pragmatism), 간결성(Conciseness), 안전성(Safety)이라는 확실한 철학을 바탕으로 설계된 언어.1. 변수와 타입 시스템: 불변성과 타입 추론자바는 타입을 명시하는 정적 타입 언어의 성격이 강하지만, 코틀린은 컴파일러의 강력한 타입 추론(Type Inference)을 기반으로 동작한다. 문법 (Grammar)val (Value): 읽기 전용 변수 (Java의 final). 초기화 후 변경 불가var (Variable): 수정 가능한 변수타입 생략: 컴파일러가 문맥을 보고 타입을 유추val name = "Yeeun"..
실시간 음원 스트리밍은 어떻게 구현할 수 있을까?라는 궁금증에서 시작된 작은 실험 기록 FFmpeg와 HLS, RTMP란?FFmpeg: 멀티미디어 변환 툴FFmpeg은 오디오·비디오를 인코딩 / 디코딩 / 변환 / 스트리밍할 수 있는 오픈소스 멀티미디어 프레임워크다.거의 모든 포맷 지원 (mp3, mp4, flv, mpeg 등)실시간 변환 및 송출 가능 (-re, -f flv, -c:a aac 등)방송, CCTV, OTT 등 다양한 시스템에서 내부적으로 사용됨FFmpeg 명령어 옵션더보기FFmpeg 옵션옵션전체 표기의미비고 / 사용시점-re-re입력 속도를 실시간(real-time) 으로 제한주로 스트리밍 송출 시 사용. 파일을 한 번에 처리하지 않고 실제 재생 속도로 읽음-i-i 입력 파일 지정예: -..
문제[프로그래머스] 단어 변환 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 사용 알고리즘- BFS (너비우선탐색) / 그래프 탐색- 시간복잡도 O(N² × L) (N: 단어개수, L: 단어길이) 해결방법단어 배열에 타겟이 있는지 체크 후, 없다면 바로 종료(return 0)해준다각 단어를 노드로 보고, 한 글자만 다른 단어를 간선(edge)으로 연결해 그래프를 먼저 만든다begin과 한 글자 차이나는 단어들을 시작 노드로 보고 큐에 먼저 넣은 후 BFS를 돌린다BFS는 가까운 단어부터 탐색하므로, 타겟 단어에 처음 도달한 시점의 단계 수가 곧 최단 변환 횟수가 된다소스코드사용언어 : javaimport ja..
본 포스팅은 스프링으로 시작하는 리액티브 프로그래밍 책을 참고하여 작성하였습니다. ( _ _)마블 다이어그램(Marble Diagram) 이란?마블 다이어그램은 비동기적인 데이터 흐름을 시간의 흐름에 따라 시각적으로 표시한 다이어그램을 의미한다.그림에서 두 개의 타임라인이 존재하는데, 첫 번째가 Publisher가 데이터를 emit 하는 타임라인이다두 번째는 Operator 함수에서 가공 처리되어 출력으로 내보내진 데이터의 타임라인이다Marble로 표시된 데이터는 Publisher가 emit하는 데이터를 의미한다. 타임라인은 왼쪽에서 오른쪽으로 시간이 흐르는 것을 의미하기 때문에 가장 왼쪽에 있는 1번 구슬이 시간상으로 가장 먼저 emit된 데이터이다중간 박스는 Publisher로부터 전달받은 데이터를 ..
문제[프로그래머스] 숫자 게임(Summer/Winter Coding(~2018))사용 알고리즘- 투 포인터 (two pointer) / Greedy- 시간복잡도 O(N logN)해결방법A, B를 모두 오름차순 정렬A의 각 원소에 대해, B에서 A보다 큰 숫자를 찾아 이긴 횟수를 증가시킨다소스코드사용언어 : javaimport java.util.*;class Solution { public int solution(int[] A, int[] B) { int answer = 0; // A, B 오름차순 정렬 Arrays.sort(A); Arrays.sort(B); int j = 0; // B inde..
문제[프로그래머스] 야근 지수사용 알고리즘- Heap / Greedy- 우선순위 큐 (PriorityQueue)- 시간복잡도 O(n logN) (n: 남은 시간, N: 작업 수)해결방법주어진 works를 우선순위 큐에 작업량이 많은 순으로(내림차순) 넣는다남은 작업시간 n 동안 반복문을 돌면서, 가장 많은 작업량을 가진 일을 찾아서(조회) 1씩 줄이고 다시 큐에 넣는다이 동작을 효율적으로 처리하기 위해 힙 구조를 사용소스코드사용언어 : javaimport java.util.*;class Solution { public long solution(int n, int[] works) { long answer = 0; PriorityQueue pq = new PriorityQueu..
최근 실무에서(이 포스팅의 연장선이다 ㅎㅋㅋ), 아래와 같은 이벤트 리스너 코드를 작성했는데 이상한 현상을 발견했다.@Slf4j@RequiredArgsConstructor@Componentpublic class MessageEventHandler { private final MessageRepository messageRepository; @Transactional @TransactionalEventListener( phase = TransactionPhase.AFTER_COMMIT, fallbackExecution = true ) public void handleCreateTemplateMessageEvent(MessageByTemplateReques..