백준 / 게임 / 1072번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 게임 / 1072번 (실버 3단계)문제 사이트: https://www.acmicpc.net/problem/1072 문제 설명 나의 풀이if __name__=="__main__": x, y = map(int, input().split()) # 현재 승률 계산 winning_rate = y * 100 // x # 게임 횟수 추가를 위한 초기값 number_event = 0 # 이기는 횟수를 늘려가며 확인 while True: if x == y: print(-1) break number_event += 1 new_winning_rate = (y + nu..
백준 / 파이프 옮기기 1 / 17070번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 파이프 옮기기 1 / 17070번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/17070 문제 설명 나의 풀이# 파이프 이동 방향directions = { 1: [(0, 1, 1), (1, 1, 3)], # 가로 상태 2: [(1, 0, 2), (1, 1, 3)], # 세로 상태 3: [(0, 1, 1), (1, 0, 2), (1, 1, 3)] # 대각선 상태}# 유효성 검사def is_valid(home, n, current_status, r, c, dr, dc): # 다음 탐색에 충돌이 발생하는 부분이 있는지 확인 nr, nc = r + dr, c + dc # 벽에 부딪치면 더 ..
백준 / 학생 번호 / 1235번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 학생 번호 / 1235번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1235 문제 설명 나의 풀이def solution(s, n): answer = 1 while True: # 리스트를 문자열로 변환하여 슬라이싱 if len({"".join(i[-answer:]) for i in s}) == n: break answer += 1 return answerif __name__ == "__main__": # 사람 수 n명 n = int(input()) # 학생들 student = [list(input()) for _ in rang..
React vs Svelte: 비교해보기!
·
소프트웨어 개발/끄적
프론트엔드 개발에서 리액트(React)와 스벨트(Svelte)는 자주 비교되는 두 가지 프레임워크입니다. 이 글에서는 각각의 장단점을 살펴보고, 더 나아가 정보를 수집할 때 참고할 만한 리소스를 정리해보겠습니다.React의 장단점장점광범위한 생태계 및 커뮤니티React는 Facebook(현 Meta)이 개발한 이후로 폭넓은 사용자를 확보하며 대규모 커뮤니티를 형성했습니다. 이를 통해 방대한 라이브러리와 도구를 활용할 수 있습니다.커뮤니티의 활발한 활동 덕분에 문제가 발생했을 때 검색으로 해결책을 쉽게 찾을 수 있습니다.재사용 가능한 컴포넌트 기반React는 UI를 컴포넌트 단위로 구성합니다. 이로 인해 코드 재사용성이 높아지고, 유지보수와 확장이 용이합니다.가상 DOM(Virtual DOM)가상 DOM은..
[알고리즘] 매개변수 탐색 알고리즘: 최적의 설정을 찾는 방법
·
컴퓨터 과학/알고리즘
기계 학습 모델을 개발할 때, 성능을 극대화하기 위해서는 모델의 하이퍼파라미터를 적절히 설정하는 것이 중요합니다. 하이퍼파라미터란 모델의 학습 과정에 직접적으로 영향을 미치는 변수로, 학습률, 신경망의 레이어 수, 뉴런 수, 정규화 계수 등이 포함됩니다. 하지만 최적의 하이퍼파라미터를 찾는 과정은 쉽지 않습니다. 이 글에서는 대표적인 매개변수 탐색 알고리즘과 그 특징에 대해 알아보겠습니다. 1. 그리드 탐색(Grid Search)그리드 탐색은 모든 가능한 매개변수 조합을 체계적으로 탐색하는 방법입니다. 사용자가 지정한 각 매개변수의 값들에 대해 모든 조합을 시도하며, 가장 성능이 좋은 조합을 찾습니다.간단한 예제from sklearn.model_selection import GridSearchCVfrom..
백준 / 나무 자르기 / 2805번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 나무 자르기 / 2805번 (실버 2단계)문제 사이트: https://www.acmicpc.net/problem/2805 문제 설명 나의 풀이def binary_search(tree, m): # 결과 값 answer = 0 # 이진 탐색을 위한 변수 left = 0 right = max(tree) # 경우의 수 while left slice_high: total += t - slice_high # 자른 나무의 길이가 길면 높여야 한다. if total ※ 알아야 할 것https://newkimjiwon.tistory.com/188 [알고리즘] 이분 탐색(Binary Se..
백준 / 오르막 수 / 11057번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 오르막 수 / 11057번 (실버 1단계)문제 사이트: https://www.acmicpc.net/problem/11057 문제 설명 나의 풀이def solution(n): MOD = 10007 # 모듈러 값 answer = 0 # dp 초기화 dp = [[0] * 10 for _ in range(n + 1)] # 초기값 부여 for i in range(10): dp[1][i] = 1 for i in range(2, n + 1): for j in range(10): for k in range(j, 10): dp[i][j] += dp[i - 1]..
[알고리즘] Union-Find 유니온-파인드(Disjoint Set Union)
·
컴퓨터 과학/알고리즘
Union-Find(또는 Disjoint Set Union, DSU)는 그래프 알고리즘에서 서로소 집합(Disjoint Sets)을 관리하기 위해 사용되는 자료구조입니다. 이 알고리즘은 대표적으로 최소 스패닝 트리(MST) 알고리즘인 Kruskal's Algorithm에서 사용되며, 효율적으로 그래프의 연결성을 판단하거나 집합을 관리할 수 있습니다. 1. Union-Find란 무엇인가?Union-Find는 다음 두 가지 연산을 빠르게 수행할 수 있도록 설계된 자료구조입니다.Find(x): 원소 x가 속한 집합의 대표자(루트 노드)를 찾습니다.Union(x, y): 원소 x와 y가 속한 두 집합을 하나로 합칩니다.이 두 연산을 통해 집합을 동적으로 관리하며, 집합의 연결성을 확인할 수 있습니다. 예를 들어..
백준 / 여행 가자 / 1976번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 여행 가자 / 1976번 (골드 4단계)문제 사이트: https://www.acmicpc.net/problem/1976 문제 설명 나의 풀이from collections import dequedef renewal(citys, n, m, planes): # BFS로 모든 도시가 연결되어 있는지 확인 start = planes[0] for i in range(1, m): end = planes[i] if not search(citys, start, end, n): return False start = end return Truedef search(citys, start, end, n):..
백준 / 2xn타일링 / 11726번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 2xn타일링 / 11726번 (실버 3단계)문제 사이트: https://www.acmicpc.net/problem/11726 문제 설명 나의 풀이def solution(n): dp = [0] * (n + 1) if n >= 1: dp[1] = 1 if n >= 2: dp[2] = 2 for i in range(3, n + 1): dp[i] = dp[i - 1] + dp[i - 2] return dp[n] % 10007if __name__=="__main__": # n이 주어진다. n = int(input()) print(solution(n))※ 알아야 할 것
백준 / 물병 / 1052번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 물병 / 1052번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/1052 문제 설명 나의 풀이# 문제의 핵심:# 1: 물병을 k개 이내로 만들어야한다.# 2: 물병에서 다른 물병으로 이동할 때는 같은 양의 물이 있어야 가능하다.# 3: 모든 물병은 1L를 가진채 시작한다.# 핵심 로직:# 문제를 자세히 살펴보면 총 물의 양은 2, 4, 6, 8, ... 2^n# 2의 제곱으로 증가한다 이걸 2진수로 나타내서 2진수에 존재하는 1의 개수가 k개 이내로 존재하면# 물병을 만들 수 있게 된다.# 물병을 구하는 함수def solution(n, k): # 최소한으로 들어간 물병의 개수 answer = 0 whil..
백준 / AC / 5430번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: AC / 5430번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/5430 문제 설명 나의 풀이from collections import deque# 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다.# AC는 정수 배열에 연산을 하기 위해 만든 언어이다.# 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다.def ac(current_function, n, arr): reverse_flag = False # 뒤집기 여부를 저장하는 플래그 dq = deque(arr) for p in current_function: if p == 'R': rever..
김치바보
김치바보입니다.