- 프로그래머스 레벨1
- 백준 DFS와 BFS
- 백준 다이나믹프로그래밍
- 알고리즘 문제
- Spring 초보
- 항해99 코테 스터디
- programmers
- 다이나믹 프로그래밍
- 코테
- TIL
- 스프링 초보
- 항해99
- 프로그래머스 level1
- 프로그래머스
- 코딩테스트 연습
- 백준 dp
- 장고 기초
- 브루트포스
- 코딩테스트
- 코테 연습
- 백준 구현
- 스프링 기초
- dp 알고리즘
- 이분탐색
- spring 기초
- 99클럽 코테 스터디
- Django 기초
- 백준
- BFS
- 알고리즘 공부
- Today
- Total
목록전체 글 (81)
일일구름 IT

5주간의 99클럽 코테 스터디가 드디어 끝났다-!! 신청하기 전까지는 25일 매일 미션 완수를 할 수 있을줄 알았는데 ..결과적으로는 18문제를 풀었다 ! 나는 99클럽 코테 스터디에 신청하기 전부터 한달정도 매일 꾸준히 코테 문제를 최소 1문제씩 풀었다. 그래서 어차피 코테 공부를 하는거 동기부여가 되도록 99클럽 코테 스터디를 신청하게 되었다. 25일 미션 완수는 못했지만 18문제를 푼 것으로 만족한다.그리고 미션 완성 횟수에 따라서 보상을 주는데 신청비가 3만원인걸 생각하면 보상만 받아도 충분히 신청비 회수가 가능하다.그리고 UI/UX로 내가 얼마나 미션을 달성했는지 확인이 되어 동기부여가 된다.주마다 같은 알고리즘에 대한 코테 문제가 주어졌는데 내가 자주 풀지 않았던 알고리즘 문제들이 주어져서..

하 DP 너무 어렵다 ... 정말루 .. 알고리즘 중에 가장 어려운 것 같다.계속해서 알고리즘을 짜는데 너무 어려워서 구글링해서 다른 사람의 코드를 참고하였다. 일단 기본적으로 1개의 카드를 살 때 최대 금액, 2개 카드 최대 금액, ..., n개의 카드를 살 때 최대 금액 이런식으로 점진적으로 풀어 나가야 한다. 점화식부터 찾아보자.dp는 i 개의 카드를 살때 최대 금액을 저장하는 리스트이고 p는 i개의 카드를 살때 정해진 금액이다. dp[0] = 0dp[1] = dp[0] + p[1]dp[2] = max(dp[1] + p[1], dp[0] + p[2])dp[3] = max(dp[2] + p[1], dp[1] + p[2], dp[0] + p[3])dp[4] = max(dp[3] + p[1], dp[2]..

문제를 읽고 처음에는 별 생각 없이 queue를 사용하여 코드를 작성하였다. 첫 코드from collections import dequet = int(input())for _ in range(t): n = int(input()) queue = deque([n]) cnt0 = 0 cnt1 = 0 while queue: curr_n = queue.popleft() if curr_n == 0: cnt0 += 1 elif curr_n == 1: cnt1 += 1 else: a = curr_n - 2 b = curr_n - 1 queue.append(a) qu..

처음에 문제를 읽고 BFS로 코드를 작성하였다. 그런데 예제 입력3에서 출력 값이 안나왔다 ... 아무래도 BFS 알고리즘으로 풀면 쓸데 없이 탐색하는 값이 너무 많아서 출력이 안나오는 것 같다. 그래서 간단히 다시 코드를 작성해보았다. 내 코드n = int(input())t = 1cnt = 1if n == 0: print(0)elif n == 1 : print(1)else: while t != n: if n - t 일단 N 값이 0이거나 1이면 횟수도 0, 1이기 때문에 바로 출력해주었고 0 또는 1이 아닌 경우엔 처음엔 무조건 +1을 해야 t = 1, cnt = 1로 초기화해준다. 여기서 t는 현재 고양이 수이다. 1. t == n이 될때까지 while문을 돌려준다2. n - t 3..

후우우 BFS로 풀까 하다가 저번 문제로 DFS를 오랜만에 쓰게 돼서 DFS에도 익숙해지고자 이 문제는 DFS로 풀기로 하였다 그냥 BFS로 풀 걸 ... 후우이 문제 푸는데 4시간 반이 걸렸다 .. ^,^ 내 코드import sysgraph = []for _ in range(19): graph.append(list(map(int, input().split())))color = 0answer = (-1, -1)direct = [(0, 1), (1, 1), (1, 0), (-1, 1)]def DFS(loc, dir, loc_l): global color, answer # 5목일 때 if len(loc_l) == 5: a = loc_l[0][0] - direct[dir][0..

처음에 문제를 읽고 일단 그래프 탐색이니까 BFS를 사용해야겠다고 생각했다. 큰 이유는 없었고 매번 BFS만 사용해서 DFS는 생소했기 때문이다. 그러던중, 이 문제는 브루트포스 알고리즘 관련 문제라는 것을 알게 되었다. 브루트포스는 먼저 한 방향으로 탐색을 하고 더이상 답이 없을 경우엔 되돌아와 다른 방향을 탐색하는 것이다.그렇기 때문에 브루트포스는 BFS가 아닌 DFS가 적합하다고 판단하였다. 내 코드from collections import dequek = int(input())sign = list(input().split())min_n = ''max_n = ''visited = [0 for _ in range(11)]def dfs(cnt, s): global min_n, max_n i..

일단 문제를 보면 넓이를 구하는 것이기 때문에 BFS 방법을 사용해야 한다는 것을 알 수 있다. 내 코드from collections import deque# 방향dir = [[1, 0], [-1, 0], [0, 1], [0, -1]]# 지도 크기 입력받기n = int(input())Map = []num = []# 지도 상태 입력받기for i in range(n): Map.append(list(map(int, list(input()))))queue = deque([])def bfs() : cnt = 0 # 단지 수 for i in range(n): for j in range(n): house_num = 0 # 단지에 속하는 집 수 ..

일단 이 문제는 이미 풀어본 문제라 작성했던 코드를 기반으로 TIL을 작성하고자 한다.사실 6일차 문제도 전에 이미 풀어봤던거였다.. 이게 99클럽 코테의 단점 중 하나인가그래서 TIL을 작성하고 나는 미들러 보너스 문제를 풀어보려고 한다. 일단 로직을 짤때 BFS 탐색 방법을 사용하고 매번 갈 수 있는 방향이 [ x-1, x+1, x*2 ] 라는 것을 염두해두었다. 내 코드from collections import dequen, k = map(int, input().split())queue = deque()def bfs(): queue.append(n) while queue: x = queue.popleft() # 위치가 동생의 위치와 같으면 해당 위치까지 가기위한 ..