일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 논문리뷰
- dreammotion
- 3d editing
- magdiff
- Python
- video editing
- masactrl
- controllable video generation
- visiontransformer
- emerdiff
- diffusion model
- 코딩테스트
- transformer
- VirtualTryON
- Vit
- controlnext
- 코테
- video generation
- diffusion models
- image editing
- Programmers
- diffusion
- BOJ
- DP
- 네이버 부스트캠프 ai tech 6기
- score distillation
- 3d generation
- segmenation map generation
- 프로그래머스
- segmentation map
- Today
- Total
목록코딩 테스트 준비 (30)
평범한 필기장
https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 내가 생각한 아이디어 나는 이 문제를 너무 복잡하게 생각해서 자꾸 3번째 테스트 케이스에서 -1이 출력되었다. 기본적으로 틀린 부분을 기준으로 3*3 행렬부분을 바꿔야겠다는 생각은 했지만 그것을 적용하는 부분에서 내가 잘못 생각한 것 같다. 나는 3*3행렬에서 중심이 될 수 있는 점들을 골라내고 그 중심들을 모두 탐색해서 중심을 중심으로 3*3행렬 부분에서 틀린 부분이 있으면 그 행렬을 전부 바꿔야겠다는 이상한..
https://www.acmicpc.net/problem/21314 21314번: 민겸 수 민겸 수 하나가 주어진다. 민겸 수는 대문자 M과 K로만 이루어진 문자열이며, 길이는 3,000을 넘지 않는다. www.acmicpc.net 내가 생각한 풀이방식 최소값을 구하는 방법 : K가 나오기 전까지 M의 개수를 카운트하고 K가 나오면 정답에 10 ** (그때까지 나온 M의 개수 - 1)을 이어 붙이고 5를 뒤에 붙여준다. 그리고 민겸 수가 K로 끝나면 앞의 방식대로 수행하고 그대로 정답을 출력하면 되지만 M으로 끝날 경우, 앞에서와 같이 정답에 10 ** (그때까지의 M의 개수 -1)을 이어붙인다. 최대값을 구하는 방법 : K가 나오기 전까지 M의 개수를 카운트하고 K가 나오면 정답에 5 * (10 ** ..
https://www.acmicpc.net/problem/20300 20300번: 서강근육맨 PT 첫째 날에 $1$과 $4$를 선택하고, 둘째 날에 $2$와 $3$을 선택하고, 마지막 날에 $5$를 선택하면 $M$은 $5$가 되며, 이때가 $M$이 최소일 때이다. www.acmicpc.net 내가 생각한 풀이방식 일단 운동기구의 개수가 홀수인지 짝수인지를 나누어서 생각한다 짝수면 근손실 리스트를 오름차순으로 정렬을 하고 1번째와 마지막번째 값을 더한 값, 2번째와 (마지막 -1)번째 값을 더한 값 ,,, 을 구해서 가장 그 중 가장 큰 값이 M 홀수면 1번째와 (마지막-1)번째 값을 더한 값, 2번째와 (마지막-2)번째 값을 더한 값,,,, 그리고 마지막 값을 구해서 그 중 가장 큰 값이 M 내 코드 i..
https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 내가 생각한 풀이 방식 일단 최소 비용을 구하기 위해선 2+1에서 무료가 되는 물품의 비용이 최대가 되어야한다. 그래서 가격 리스트를 내림차순으로 하고 앞에서 3개씩 한 묶음으로하면 무료가 되는 물품들의 가격이 최대가 된다고 생각했다. 그래서 2번째, 5번째 ~ 순의 인덱스에 잇는 물품들의 가격을 제외하고 모든 가격들을 합하는 방식으로 구했다. 내 오답 코드 n = int(input()..
https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 어떻게 풀었는가 거스름돈을 2원짜리와 5원짜리로 못 주기 때문에 거스름돈을 못주는 돈은 1원과 3원이다. 거스름돈 N이 5로 나누어지면 그 몫만큼 5원짜리 동전 개수를 추가해주고 나누어지지 않으면 2를 계속 뺴주면서 2원짜리 동전을 한개씩 추가해줬다. n = int(input()) if n == 1 or n == 3: print(-1) else: cnt = 0 while True: if n % 5 == 0: cnt += n // 5 print(cnt) break else: n = n - 2 cnt += 1 if n ..
https://www.acmicpc.net/problem/21919 21919번: 소수 최소 공배수 수열 중에 소수는 2, 3, 5가 있다. www.acmicpc.net import sys n = int(input()) lst = list(map(int, sys.stdin.readline().split())) def od(a): if a == 1: return 0 else: for i in range(2, a): if a % i == 0: return 0 return 1 ans_lst = [] for k in lst: if od(k) == 1: ans_lst.append(k) if len(ans_lst) == 0: print(-1) else: cnt = 1 for k in ans_lst: cnt *= k..
https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 어떻게 풀었는가 N까지의 수에서 소수이면 그 소수와 그 소수의 배수(N보다 작은)를 리스트에 다 넣었다. 그리고 이 리스트의 길이가 k와 같아 질때 까지 반복 하였다. 그럼 그 리스트의 마지막 원소가 답이 된다. 처음에 이 방식에서 중복해서 들어가는 것을 생각안하고 했다가 틀려서 이미 리스트에 들어있는지를 체크하는 부분을 추가했다. 코드 n, k = map(int, input().split()) lst = [] for i in range(2, n + 1): lst.append(i) d..
https://www.acmicpc.net/problem/9372 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net Idea : 트리를 BFS방식 (BFS 방식이 정확하게 맞는진 모르겠지만,,,)으로 모든 점을 탐색해서 몇번만에 탐색이 완료되는지를 세어봤다. 2차원 빈 리스트를 만들어서 각 인덱스의 빈 리스트에 그 인덱스 번호와 연결된 번호를 리스트에 넣어 graph를 만들었다.빈 큐를 만들어서 특정 점과 연결된 점들을 넣을 공간을 만들었고, 특정 점을 방문 했는지를 체크하..
이 문제를 보고 단절선을 찾는 함수 단절점을 찾는 함수를 각각 만들어보려 했는데 도저히 생각이 나지 않았다. 그렇게 문제를 켜두고 생각을 해보니 트리에서 어떤 간선을 없애도 항상 2개의 트리로 나눠진다는 것을 떠올렸고 트리의 끝점 즉, 자식이 없는 노드를 제외하고 나머지 노드를 제거하면 트리는 2개의 트리로 항상 나눠 진다는 것을 생각해냈다. 그래서 처음에 graph를 만들 때 빈 리스트가 (노드의 개수 + 1) 개인 2차원 빈 리스트를 만들고 각 리스트에 연결된 노드를 넣었다. (1번 노드와 3번 노드가 연결되어 있으면 1번째 리스트에 3을 넣고 3번째 리스트에 1을 넣는 방식) 그리고 간선을 없앤다고 하면 항상 yes를 출력하게 하고 노드를 없애면 그 노드가 자식이 없는 마지막 노드인지를 확인하고 마..
이 문제를 보면 입력의 첫째 줄에는 완전 이진 트리의 깊이가 나와있고 두번째 줄에는 방문 순서 대로 빌딩의 번호가 나와있습니다. 이 문제에서는 기준 노드를 기준으로 좌측 자식 노드를 먼저 방문하고 기준 노드를 방문하고 우측 자식 노드를 방문합니다. (inorder algorithm) 그래서 일단 저는 깊이 만큼의 빈 리스트가 있는 2차원 빈 리스트인 answer list를 만들고 각 레벨에 있는 숫자들을 빈 리스트의 인덱스에 맞게 넣을려고 했습니다. 완전 이진 트리이기 때문에 루트부터 0번째 리스트에 넣으려 했습니다. 이 완전 이진 트리의 루트는 주어진 리스트의 중앙 인덱스에 위치한 값이겠죠? 왜냐하면 완전 이진 트리 특성상 이진 트리가 완전히 꽉 채워져 있기 때문에 루트 노드를 기준으로 좌우의 노드 개..