일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kruskal
- programmers
- 함밥
- DP
- B대면노래방
- codetree
- 장고
- 동적계획법
- 데이터베이스
- 최소스패닝트리
- DFS
- BFS
- 소프트웨어공학
- 모각코
- 그리디알고리즘
- Bellman-Ford
- 코드트리
- 알고리즘
- 파이썬
- 백준
- 종합설계
- Planned
- minimum spanning tree
- 실습
- 마라마라빔
- SQL
- 프로그래머스
- 백트래킹
- MyPlaylist
- django
- Today
- Total
목록전체 글 (242)
Leta Learns
git clone 방법 Git -> Clone master branch protection rule 적용하여 브랜치 보호 https://kotlinworld.com/292 [GitHub] Branch Protection Rule 적용해 브랜치 보호하기 Branch를 보호하는 것이 중요한 이유 협업을 할 때 Rule이 없으면 각자 자신의 방식으로 일을 하게 되기 때문에 뒤죽박죽이 된다. 만약 인원이 적다면 별 문제가 되지 않지만, 실무에서는 적게는 3 kotlinworld.com [leta] branch 생성한 후 checkout 식당 리스트 모듈 구현 스프링 구현 순서 Entity -> Repository -> Dao -> Service -> Controller 모든 식당을 리스트로 받아오는 findAl..
문제 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 아 디피 어렵다!!!!!!! 어떻게 풀어야 하나 감이 안 잡혔는데 시간제한이 0.5초라서 이중 for문은 절대 쓰면 안 됐고,, 혹시 DP인가... 하면서 알고리즘 분류를 확인했더니 DP가 맞았다. 처음에 for문을 0번 인덱스부터 돌려서 좀 헤맸다. 1번 인덱스부터 돌리면 바로 전 집의 최솟값과 자신의 값을 더해서 값을 갱신해주면 된다. import sys input ..
간만에 골드 하나 풀어볼까 하고 선택한 문제. 왠지 풀 수 있을 것 같아서 선택한건데 모각코 시간 안에 못 풀었다. 풀면서도 이게 아닌데.. 싶은 생각이 들었지만, 일단 풀기 시작했으니 이 방식으로 맞춰보고 싶었다. 그냥 제출했는데 메모리초과가 발생해서 조금 더 생각해보고 안 되면 구글링해서 다른 사람들 풀이를 참고해서 다시 풀어볼 생각이다. import sys input = sys.stdin.readline sys.setrecursionlimit(10**6) def minus(mans, n): mans += 1 n -= 1 ns = list(str(n)) if all([(i not in ns) for i in x]): return mans else: mans = minus(mans, n) return ..
문제 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net import sys input = sys.stdin.readline k = int(input()) num = [] for i in range(k): n = int(input()) if n == 0: del num[-1] else: num.append(n) print(sum(num))
문제 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net import sys input = sys.stdin.readline n, m = map(int, input().split()) pwinfo = {} for _ in range(n): site, pw = input().rstrip().split() pwinfo[site] = pw for _ in range(m): want = input().rstrip() prin..
문제 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 처음에 while문 하나 for문 하나를 사용해서 O(N^2) 으로 풀었다. 코드 짜면서 뭔가 무조건 시간초과 날 것 같다고 생각했는데 역시나... 이분탐색으로 다시 풀었다. 그런데 웃긴 점은.. 오늘 백준 자체가 느린 것인지..? 같은 코드로 제출했는데 한 번은 맞고 한 번은 시간초과가 난다. 혹시나 내가 틀린 걸까 싶어서 구글링 해보았는데 다른 사람..
문제만 봤을 때는 금방 풀 수 있을 것 같았는데 전체적인 로직 파악을 제대로 하지 못해 꽤 오랜 시간이 걸린 문제였다. 테스트 케이스를 통과시키기 급급해하며 문제를 푸는 것보다 그 테케를 이용하여 전반적인 로직을 찾는 연습을 해야겠다. import sys input = sys.stdin.readline t = int(input()) #test case 개수 for i in range(t): n = int(input()) #의상 수 clothes = {} for j in range(n): c_n, c_t = input().split() #clothes_name, clothes_type #종류별로 분류 if c_t not in clothes.keys(): clothes[c_t] = 1 else: clothe..
문제 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 처음에는 전체적인 로직을 생각하지 않고 그냥 테스트케이스만 보고 풀었더니 틀렸다. 하나씩 비교해가면서 노가다하는 방법으로 풀었는데 한 번 틀리고 다시 생각해보니 왠지 조합 같아서 알고리즘 분류를 확인했다. -> 조합론 맞았음 그리고 나서 조합으로 어떻게 풀 지 생각해보는데 잘 떠오르지 않고 헷갈려서 ..
그리디 문제라는데 왜 그리디인지 잘 이해가 안 간다....... 간단히 설명하자면, 뺄셈을 기준으로 식을 나눈 후에 exp[1]부터 exp[-1]까지의 식들을 덧셈을 기준으로 나눠서 exp[0]의 값에서 전부 빼주면 된다. import sys input = sys.stdin.readline exp = input().split('-') #식: expression ans = 0 for i in exp[0].split('+'): ans += int(i) for i in exp[1:]: for j in i.split('+'): ans -= int(j) print(ans) 중요한 건 아니지만, 백준 알고리즘 문제 풀이 카테고리에도 이 문제에 대한 글을 써놓았다. 2022.08.03 - [Coding/백준] - [..
문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 꽤 많이 헤맸다. 처음엔 '(', ')' 에 대해서 투 포인터로 문제를 풀어야 하나? 싶어서 일단 입력받은 식을 해체했다. 수 따로 연산자 따로 리스트를 만들고 나면 어떻게든 되겠지~ 라는 생각으로 일단 식을 해체했는데 하고나니 어떻게 해야 할 지 모르겠어서 문제를 제대로 이해하기 위해 노력했다. 식의 값이 최솟값이 되기 위해서는 뺄셈을 기준으로 식을 나누는 게 가장 중요했다. 뺄셈이 ..