일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DI
- 화자분리
- API Gateway
- OpenSource
- 하이브리드 데이터 모델
- metricbeat
- pyannote
- fosslight
- curl
- elastic search
- ELK
- supabase
- template/callback
- konga
- jwt-java
- devops
- C++
- prometeus
- roll over
- Nice
- monitoring
- 메소드
- mybatis
- docker
- kong
- Spring
- java
- 파이썬
- umc
- 자료구조
- Today
- Total
목록알고리즘 (40)
youngseo's TECH blog
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bdWuiW/btsGdqLNRJw/3ECxYdxC7nuV0wFthDuQP0/img.png)
❆ 문제 시 삭제하겠습니다. 개요 대충 이렇게 풀어봤다.. 네이버 2024 코딩테스트 전형 3.18 까지 서류를 작성해서 제출한 이후 3.22 에 코딩테스트를 보게 되었다. 총 3문제를 2시간동안 풀어야 하고, 따로 해설이나 기출문제는 제공해주지 않는다. ❆ 제가 풀이한 내용을 바탕으로 정리하였습니다. 풀이가 정해가 아닐 수 있습니다. ❆ 자세한 문제 지문은 생략하였습니다. 1번 문제 - 자료구조 + 누적합 우선 누적합으로 각 식물의 상황들을 전체적으로 구현해볼 생각이었으나 누적합 2차원 배열을 만들 경우 시간초과 문제로 택도 없었다. 따라서 자료구조를 사용했다. {식물 num: 해당 식물에게 물을 주는 날짜들} 예를 들면 {1:[1, 3, 6, 19]} 로 식물에게 물을 주는 날짜들을 딕셔너리 형태로 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/y2WNA/btsCMwGKjp2/yTUsPgwKeLtlrwFPxXRuc0/img.png)
개요 Whisper STT 과제에 이어, 추출된 문장들을 요약하는 과제가 추가되었다. 문장 요약 방법 2가지 문장 요약에는 크게 추출적 요약(Extractive Summarization)과 추상적 요약(Abstractive Summarization)으로 나누어진다. 추상적 요약은 AI를 이용해 나름대로 새로운 문장으로 요약을 하는 것이고, 추출적 요약은 말 그대로 글에서 중요한 문장만을 추출시켜 요약하는 것이다. 우선 추출적 요약을 사용해보기로 하였다. 페이지링크 알고리즘 우리가 쓰려는 텍스트랭크 알고리즘은 페이지랭크 알고리즘을 기반으로 한다. 페이지링크는 더 중요한 페이지는 더 많은 다른 사이트로부터 링크를 받는다는 관찰에 기초한 검색기술이다. 웹페이지는 정점, 그리고 웹페이지가 포함하는 하이퍼링크는 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cd1xyJ/btsAO7B9YFY/uywJ86avAmJzBqV2TC3PP1/img.png)
문제 https://www.acmicpc.net/problem/1034 1034번: 램프 첫째 줄에 N과 M이 주어진다. N은 행의 개수이고, M은 열의 개수이다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 램프의 상태가 주어진다. 1이 켜져있는 상태이고, 0이 꺼져 www.acmicpc.net 첫번째 풀이 - 백트래킹, 시간초과 N, M의 입력값이 50이라 불안하긴 했지만 일단 백트래킹 말고는 최적화 방법을 못 떠올렸다. 아래와 같이 백트래킹으로 진입하며 XOR로 한 줄씩 램프를 반대로 설정하도록 구현하였다. """켜져있는 램프는 꺼지고, 꺼져있는 램프는 켜진다""" N, M = map(int,input().split()) List = [] for _ in range(N):..
0. 문제 https://www.acmicpc.net/problem/22115 22115번: 창영이와 커피 커피는 종류별로 하나씩 준비되어 있기 때문에, 동일한 커피를 여러 개 마실 수 없음에 유의하라. www.acmicpc.net 1. 문제 해설 아래 힌트에 이 문구가 있다. 커피는 종류별로 하나씩 준비되어 있기 때문에, 동일한 커피를 여러 개 마실 수 없음에 유의하라. 그리고 위에도 볼드채로 '하나씩' !! 이라고 쓰여 있는데 이걸 놓치면 틀릴 수 있다. .. ㅠ 2. 문제 풀이 그래서 이 DP+냅색 문제를 두 가지 경우로 바꾸어서 이해해 보았다. 먼저, 만약 커피가 무제한으로 존재한다면? 아래와 같이 풀 수 있을 것이다. N, K = map(int,input().split()) C = list(ma..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 생각 임의의 두 수 i, j가 있다. 만약 근무태도 점수[i] < 근무태도 점수 [j] 이고 동료평가 점수[i] < 동료평가 점수 [j] 인 경우가 한 번이라도 있다면 i 는 인센티브를 받지 못한다. 그게 아니라면 두 점수의 합이 높은 순으로 석차를 낸다. N = 10만이라면 → NlogN 알고리즘이 적합하겠다!! 문제 풀이 def solution(scores): wanho = sco..
0. 문제 사칙연산 1. 문제 풀이 백준의 행렬 곱셈 순서 문제와 유사한 문제이다. 처음에는 Greedy라고 생각하였다 . 하지만 DP! - 뒤에는 작은 수가, + 뒤에는 큰 수가 나와야 한다. 또한 순차적인 계산 방식이 아니므로 Greedy로 풀 수 없고, 행렬 곱셈 순서 문제처럼 step별로 계산하며 DP table로 상태를 계속 적어두어야 한다. INF = 987654321 def solution(arr): answer=0 num = (len(arr)+1)//2 DP_max = [[-INF] *(num+1) for _ in range(num+1)] DP_min = [[INF] * (num+1) for _ in range(num+1)] for i in range(num): DP_max[i][i]=in..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lxuuA/btsrgkkWchO/18QkGNElUno9BobtVE086K/img.png)
0. 문제 과제 진행하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 빡구현 문제로 뒤에 오는 과제를 확인하는 동시에 남은 시간이 있다면 내가 처리할 수 있는 못 끝낸 과제들을 확인하면 된다. 사실상 못 끝낸 과제들은 '가장 최근에 멈춘 과제'를 먼저 처리하기 때문에 stack 구조로 FILO 구조를 사용하여 구현하면 된다. 2. 문제 풀이 3. 문제 구현 from collections import deque def solution(plans): # 남으면 스택에 넣는다. (뒤에 있을수록 가장 최근에 멈춘 과제) stack = [] an..
0. 문제 Z 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 1. 문제 설명 크기가 2^N X 2^N 모양 배열을 Z 모양으로 탐색하려고 할 때 R행 C열을 몇 번째로 방문하는지 찾아내는 문제이다. 규칙이 보이기 시작했고, 분할정복으로 채워나가며 추적하는 방법을 사용하려고 하였다. 2. 문제 구현 처음 시간초과 코드 N,R,C=map(int,input().split()) turn=1 def divide_and_conquer(x,y,size): global turn if y==R and x==C: p..