전체보기192 [구름톤 트레이닝 풀스택 2기] 한 달 후기 구름톤 트레이닝 과정을 진행하면서 회고를 계속 작성하고 싶었는데 할 일 목록이 쌓이다보니 계속 미뤄져 주차 회고가 아니라 한 달 회고(8/14 ~ 9/11)가 되었다. 무리해서 작성하지는 않고 기록을 남기며 쓰고 싶을 때 일단 쓰기로 했다. 내년 2월까지의 6개월 과정이니 달마다 회고는 꼭 진행하려고 한다! 알고리즘, CS 스터디를 금요일마다 모여 진행하는데 주간회고도 추가해 매주 팀원들과 한 주간 상황을 공유하고도 있다. 한 달 동안 무엇을 했나? 알고리즘 능력 향상 처음 주에 알고리즘 3문제만 해도 '실버 상 ~ 골드 난이도'가 너무 어려웠는데 지금은 처음 보는 유형이면 유형 공부를 먼저 하고 문제를 풀어나가 혼자 힘으로 푸는 문제가 생길 때 너무 뿌듯하다. 10월 초까지 골드가 목표인데 지금 실버 .. 2023. 9. 11. [구름톤 챌린지 WEEK 4 - 그래프 탐색] DAY 20. 연결 요소 제거하기 한 달간 진행됐던 구름톤 챌린지 마지막 날이다! 위 사진은 4주간 모은 캐릭터 아이템 🤣 그동안 완벽히 이해하지 못한 알고리즘 문제들도 있는데 9월 달 내로 다시 리뷰하며 풀어보는 것을 목표로 잡았다. 결과적으로 20개 블록을 모두 모았고, 시작하기 전의 내 알고리즘 실력과 지금을 비교하면 배우면서 더 성장했음을 느낀다! DAY 20. 연결 요소 제거하기 def f(y, x, d): graph[y][x] = d stack = [(y, x)] # 조건을 만족하는 연결 요소이면, 포함되는 모든 칸을 '.'으로 바꾸기 위해 해당 위치 저장할 집합 선언 # + 방문 체크 visited = set() while stack: ey, ex = stack.pop() if (ey, ex) in visited: conti.. 2023. 9. 10. [구름톤 챌린지 WEEK 4 - 그래프 탐색] DAY 16.연합 이번 구름톤 WEEK4 주제는 그래프 탐색이다. DFS, BFS 유형 문제가 너무 약해서 백준 기본 문제부터 공부를 시작하고 응용해보고 있다. 먼저 알고리즘 스터디에서 바이러스, DFS와 BFS 문제를 풀어보며 DFS, BFS로 순회하는 법을 배웠다. 이후에 구름톤 문제를 풀어보니 이에 + 서로 연결되어 있지 않은 연합, 컴포넌트 개수를 세는 문제들이 나왔다. 처음 접하는 유형이라 해설을 참고했다. DAY 16. 연합 import sys from collections import deque input = sys.stdin.readline N, M = map(int, input().split()) graph = [[] for _ in range(N + 1)] visited = [0] * (N + 1) re.. 2023. 9. 6. [구름톤 챌린지 WEEK 3 - 탐색과 동적 프로그래밍] DAY 12. 발전기 DAY 12. 발전기 행렬에서의 효율적 탐색 문제 import sys from collections import deque n = int(sys.stdin.readline()) dq = deque() # 인덱스가 넘치는 것을 막기 위해 의미없는 데이터 한줄 늘려줌 arr = [(list(map(int, sys.stdin.readline().split())) + [0]) for i in range(n)] arr.append([0 for i in range(n + 1)]) dr = [1, -1, 0, 0] dc = [0, 0, -1, 1] count = 0 for r in range(n): for c in range(n): # 0이라면 상관 없음 if arr[r][c] == 0: continue # 1이라면.. 2023. 8. 30. [구름톤 챌린지 WEEK 3 - 탐색과 동적 프로그래밍] DAY 11. 통증 (2) 통증 문제는 아래 링크 DAY 8 참고 2023.08.21 - [구름/구름톤 챌린지] - [구름톤 챌린지 WEEK 2 - 완전 탐색] DAY 6 ~ 8 리뷰 DAY 11. 통증 (2) n = int(input()) a, b = map(int, input().split()) d = [float('inf')] * (n + 1) d[0] = 0 for i in range(2, n+1): if i - a >= 0: d[i] = min(d[i], d[i - a] + 1) if i - b >= 0: d[i] = min(d[i], d[i - b] + 1) print(-1 if d[n] == float('inf') else d[n]) 구름톤 매주 주제와 같은 유형으로 알고리즘 스터디를 진행하는데 스터디에서 풀어본 문제.. 2023. 8. 30. [백준 2156번] 포도주 시식 문제 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 풀이 아이디어 DP 개념: 2023.08.27 - [Algorithms/이코테] - [Dynamic Programming] - 다이나믹 프로그래밍이란? / 문제 1로 만들기 # 포도주 잔의 개수 입력 받기 n = int(input()) # 포도주 list 입력 받기 + 여유 인덱스로 1 ~ n으로 맞춰주기 k = [0] + [int(input()) for _ in range(n)] + [0] .. 2023. 8. 29. 이전 1 ··· 4 5 6 7 8 9 10 ··· 32 다음