99클럽
99클럽 코테 스터디 15일차 TIL - 그리디 (백준13417 - 카드 문자열)
99클럽 코테 스터디 15일차 TIL - 그리디 (백준13417 - 카드 문자열)
2024.11.11https://www.acmicpc.net/problem/13417오늘의 학습 키워드 : 그리디1. 덱 초기화:첫 번째 카드는 그대로 덱(초기값 설정)2. 카드를 덱의 왼쪽 또는 오른쪽에 추가: 2-1. c 2-2. c > queue[0]: 새 카드가 더 크면 덱의 오른쪽에 추가3. 덱을 문자열로 변환 후 출력 : ''.join(queue)를 사용해 문자열로 합치고 출력공부한 내용 - 덱으로 생각했던 이유 : 양쪽 끝에서 빠르게 원소를 추가import sysfrom collections import deque# 테스트 케이스 수를 입력받음T = int(sys.stdin.readline().strip())# 각 테스트 케이스에 대해 처리for i in range(T): # 카드의 개수를 ..
99클럽 코테 스터디 14일차 TIL - 그리디 (백준14916 - 거스름돈)
99클럽 코테 스터디 14일차 TIL - 그리디 (백준14916 - 거스름돈)
2024.11.10https://www.acmicpc.net/problem/14916오늘의 학습 키워드 : 그리디공부한 내용 import sysdef min_coins(n): # 5원짜리 동전의 최대 개수를 구합니다. count_5 = n // 5 while count_5 >= 0: # 5원짜리를 최대한 사용한 후 남은 금액을 2원짜리로 채울 수 있는지 확인 remaining = n - (count_5 * 5) if remaining % 2 == 0: count_2 = remaining // 2 return count_5 + count_2 count_5 -= 1 # 5원과 2원으로 정확히 맞출 수 ..
99클럽 코테 스터디 13일차 TIL - 그리디,이분탐색 (백준27961 - 고양이는 많을수록 좋다)
99클럽 코테 스터디 13일차 TIL - 그리디,이분탐색 (백준27961 - 고양이는 많을수록 좋다)
2024.11.09https://www.acmicpc.net/problem/27961오늘의 학습 키워드 : 그리디..? 이분탐색?공부한 내용 import sys# 최소 동작 수를 계산하는 함수 정의def min_actions(N): actions = 0 # 2의 actions 제곱이 N 이상이 될 때까지 actions 증가 while 2 ** actions import sys# 입력 값 N을 받음N = int(sys.stdin.readline().strip())# 이진 탐색 범위 설정# 2**10 ≈ 10**3 이므로 2**40 ≈ 10**12 정도로 충분히 큰 범위를 잡음start, end = 0, 40result = 0# 이진 탐색을 통해 2의 몇 제곱이 N 이상인지 찾기while start = N: ..
99클럽 코테 스터디 12일차 TIL - BFS (백준7569- 토마토)
99클럽 코테 스터디 12일차 TIL - BFS (백준7569- 토마토)
2024.11.08https://www.acmicpc.net/problem/7569오늘의 학습 키워드 : BFS1. BFS로 최소 일수 계산2. 초기 상태에서 익은 토마토를 큐에 넣기3. 6방향 탐색문제의 조건에 따라 위, 아래, 왼쪽, 오른쪽, 앞, 뒤의 6방향4. 최대 일수 갱신BFS를 진행하면서 days 변수를 매 단계 갱신하며, 모든 토마토가 익을 때까지 걸린 최대 일수를 기록 최종적으로 모든 토마토가 익었을 때 max_days가 최소 일수5. 최종 상태 체크(토마토가 모두 익지 않았는지 익었는지 체크 필요)- 만약 남아있다면, -1을 출력하고 종료하여 불가능한 경우를 처리- 반면 , 모든 토마토가 익었다면, max_days를 출력합니다.공부한 내용 import sysfrom collections import de..
백준 4485(녹색 옷 입은 애가 젤다지?) - 다익스트라알고리즘, 힙구조, 최단거리- python
백준 4485(녹색 옷 입은 애가 젤다지?) - 다익스트라알고리즘, 힙구조, 최단거리- python
2024.11.04https://www.acmicpc.net/problem/4485예제 풀이일단 첨에는 DFS로 이용해서 풀었지만 아니나 다를까,, 바로 시간초과..⭐️그래서 생각한건 다익스트라 알고리즘으로 최단 경로 알고리즘이었다..예제 하나를 이용해서 다익스트라 알고리즘을 풀이하면 다음 사진과 같다고 생각하면 이해하기 쉽다. 만약 다익스트라 알고리즘이 먼가,, 이것부터라면 밑에 링크로 들어가는것을 추천한다 (나름 이코테 책보면서 정리해둔 다익스트라알고리즘이다. ) [이코테] CHAPTER 09 최단 경로 알고리즘 - 다익스트라 최단 경로 알고리즘최단 경로 알고리즘(Shortest Path) : 가장 짧은 경로를 찾는 알고리즘 1) 최단 경로 문제- 지점( 노드 ), 지점 간 연결된 도로( 간선 ) - 한 지점에서 다른..
99클럽 코테 스터디 8일차 TIL - DFS&BFS (백준2644- 촌수계산)
99클럽 코테 스터디 8일차 TIL - DFS&BFS (백준2644- 촌수계산)
2024.11.04https://www.acmicpc.net/problem/2644오늘의 학습 키워드 : DFS & BFS공부한 내용 예제1예제2DFS로 푼 경우import sys# 입력 처리n = int(sys.stdin.readline().strip()) # 총 사람의 수a, b = map(int, sys.stdin.readline().strip().split()) # 촌수를 계산할 두 사람m = int(sys.stdin.readline().strip()) # 관계의 수graph = [[] for _ in range(n + 1)] # 각 사람의 관계를 나타내는 인접 리스트# 관계 정보 입력for i in range(m): x, y = map(int, sys.stdin.readline().strip().sp..
99클럽 코테 스터디 7일차 TIL - (프로그래머스 - 모음사전)
99클럽 코테 스터디 7일차 TIL - (프로그래머스 - 모음사전)
2024.11.03프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr오늘의 학습 키워드 : 브루트 포스이론,,?공부한 내용 def solution(word): # 사전 순서대로의 모음 리스트 vowels = ['A', 'E', 'I', 'O', 'U'] # 각 자리에서 한 글자가 바뀔 때 뒤에 따라붙는 가능한 단어의 수 (가중치) # 첫 번째 자리의 가중치는 5^4 + 5^3 + 5^2 + 5^1 + 5^0 = 781 # 두 번째 자리의 가중치는 5^3 + 5^2 + 5^1 + 5^0 = 156 # 세 번째 자리의 가중치는 5^2 + 5^1 + 5^0 = 31 # 네 번째 자리의 ..
99클럽 코테 스터디 6일차 TIL - BFS (백준 2458번 - 키 순서)
99클럽 코테 스터디 6일차 TIL - BFS (백준 2458번 - 키 순서)
2024.11.03https://www.acmicpc.net/problem/2458오늘의 학습 키워드 : 플로이드 워셜, BFS공부한 내용 -> 그림은 코드 설명import sysfrom collections import deque # BFS 구현을 위한 deque 사용# 학생 수 N과 비교 횟수 M을 입력 받음N, M = map(int, sys.stdin.readline().strip().split())# 각 학생에 대한 인접 리스트 생성graph = [[] for _ in range(N + 1)] # 자신보다 큰 학생들을 저장하는 그래프reverse_graph = [[] for _ in range(N + 1)] # 자신보다 작은 학생들을 저장하는 그래프# 키 비교 관계 입력for i in range(M): ..
99클럽 코테 스터디 4일차 python TIL - 이분탐색(백준2512 예산)
99클럽 코테 스터디 4일차 python TIL - 이분탐색(백준2512 예산)
2024.11.01https://www.acmicpc.net/problem/2512 오늘의 학습 키워드 : 이분탐색공부한 내용import sys# 입력 처리N = int(sys.stdin.readline().strip()) # 지방의 수d = list(map(int, sys.stdin.readline().strip().split())) # 각 지방의 예산 요청M = int(sys.stdin.readline().strip()) # 총 예산# 이분 탐색 초기 설정start, end = 0, max(d)answer = 0# 이분 탐색 수행while start mid: result += mid # 상한액을 넘는 요청은 상한액으로 배정 else: result += i ..
99클럽 코테 스터디 3일차 python TIL - 이분탐색(프로그래머스 입국심사)
99클럽 코테 스터디 3일차 python TIL - 이분탐색(프로그래머스 입국심사)
2024.11.01프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr오늘의 학습 키워드 : 이분탐색, DP 공부한 내용def solution(n, times): # 탐색 범위 설정: 최소 시간과 최대 시간 start = min(times) end = max(times) * n answer = 0 # 이분 탐색 while start = n: answer = mid # 가능한 최소 시간 저장 end = mid - 1 # 더 작은 시간 범위를 탐색 else: start = mid + 1 # 더 많은 시간을 필요로 하는 범위..
99클럽 코테 스터디 2일차 TIL - 이분탐색 (백준 1072번 )
99클럽 코테 스터디 2일차 TIL - 이분탐색 (백준 1072번 )
2024.10.29https://www.acmicpc.net/problem/11561 오늘의 학습 키워드 : 이분탐색공부한 내용import sysimport math# 테스트 케이스의 수T = int(sys.stdin.readline().strip())for _ in range(T): N = int(sys.stdin.readline().strip()) # 1. 최대 점프 횟수의 추정값을 구합니다. max_jump = math.isqrt(2 * N) # math.isqrt()는 정수 제곱근을 구해줌 # 2. 가장 큰 max_jump 값 중에서 조건을 만족하는 최대 값 찾기 if max_jump * (max_jump + 1) // 2 오늘의 회고일단 나는 항상 문제를 풀면,, 알고리즘보다..
99클럽 코테 스터디 1일차 TIL - 이분탐색 (백준 1072번 )
99클럽 코테 스터디 1일차 TIL - 이분탐색 (백준 1072번 )
2024.10.28https://www.acmicpc.net/problem/1072 오늘의 학습 키워드 : 이분탐색공부한 내용import sys#게임 횟수 X, 승리 횟수 YX,Y = map(int,sys.stdin.readline().strip().split())#재귀형 이진 탐색 함수 정의def binary_search(X,Y,start,end): #1.종료-> start가 최소 게임 횟수 나타냄. if start>end: return start #중간값 mid = (start+end)//2 # print("mid : ",mid) #mid 계산 후 승률 다시 계산(NEW Z) result = (Y+mid)*100//(X+mid) #2.새로 ..