일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 전이학습
- 백준7576 bfs
- dfs
- DenseNet
- 백준
- SSAFY 8기
- DP
- git
- 프로그래머스
- 삼성 청년 SW 아카데미
- 이코테
- 프로그래머스 고득점 kit
- ssafy 7기 합격
- SSAFY
- 싸피 7기 입학식
- ssafy 7기 교수님
- bfs
- 삼성청년sw아카데미
- ssafy 7기
- 웹 표준 사이트 만들기
- SSAFY 입학식
- 알고리즘
- Learning
- 코딩 교육
- React
- 코딩교육
- pytorch
- 유니온 파인드
- SSAFYcial
- SWEA
- Today
- Total
목록알고리즘 (111)
개미의 개열시미 프로그래밍
https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net [풀이 코드] dp = list([ [0]*(51) for _ in range(51)] for _ in range(51)) def w(a, b, c): if a 20: return w(20, 20, 20) # 메모이제이션 활용 if dp[a][b][c]: return dp[a][b][c] if a < b and b < c: dp[a][b][c] = w(a, b, c - 1) + w(a, b - 1, ..
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net [풀이 코드] t = int(input()) dp = [0] * 41 dp[0] = (1, 0) dp[1] = (0, 1) for i in range(2, len(dp)): dp[i] = (dp[i - 1][0] + dp[i - 2][0], dp[i - 1][1] + dp[i - 2][1]) for _ in range(t): print(*dp[int(input())]) 1. 동적 프로그래밍 풀이로 해결한 문제로 dp배열은 '메모 이제이 션'개념을 활용했다. 메모 이제이 션(Memoization..
https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net [첫 번째 실패 코드] from sys import stdin n = int(stdin.readline()) k = int(stdin.readline()) b_list = [(i+1) * (j+1) for i in range(n) for j in range(n)] b_list.sort() print(b_list) - 단계별풀어보기의 '이분 탐색' 파트인데 이렇게 풀면..
https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net [풀이 코드] from sys import stdin n, c = map(int, stdin.readline().split()) a_list = [int(stdin.readline()) for _ in range(n)] a_list.sort() start = 1 end = a_list[-1] - a_list[0] # 끝집과 처음집을 뺴준 총 거리..
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net [풀이 코드] from sys import stdin n, m = map(int, stdin.readline().split()) a_list = list(map(int, stdin.readline().split())) start, end = 1, max(a_list) while start 0: # cnt += tree - mid # 방법 2 cnt = sum..
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net [풀이 코드] import collections from sys import stdin n = int(stdin.readline()) a_list = [int(stdin.readline()) for _ in range(n)] a_list.sort() def average(array): return round(sum(array) / n) # 산술평균 def center(array): return array[n//..
백준 단계별 풀어보기 '이진 탐색' 세 번째 문제 랜선 자르기를 풀어보았다. 시간초 과부 터해서 오답, 런타임 에러까지 겪고 푼 문제.. https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net [풀이코드] from sys import stdin k, n = map(int, stdin.readline().split()) array = [ int(input()) for _ in range(k)] start = 1 # 0으로 하..
백준 단계별 풀어보기 '이진 탐색' 두 번째 문제를 풀어보았고 전에 풀었던 수 찾기와 매우 비슷한 문제라 금방 풀 수 있었다. https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net [풀이코드] from bisect import bisect_left, bisect_right from sys import stdin n = int(input()) n_list = list(map(int, stdin.readline().sp..