본문 바로가기

분류 전체보기99

마인크래프트 블랙잭 플러그인 v - 1.0 버전 정보마인크래프트 1.21.4버전 | paper 서버 ( version 1.21.4-187 )에서 개발2025-03-22 v - 1.0 실행 화면명령어 : /startblackjacksingle 문제점혼자 개발하다보니 멀티플레이어 모두 게임 진행이 동일하게 적용되는지 확인하지 못함.(그래서 single과 multy를 구분) -> 버그 가능성 ↑ ↑ ↑예상되는 문제 : Gamedeck에서 중복된 카드를 가져감 or 딜러 카드가 모두 다르게 나타남하면 좋아 보이는 업데이트무언가(다이아, 에메랄드 등)을 걸고 게임할 수 있게 npc 추가게임화면을 닫으면 다시 돌아갈 방법이 없음 -> npc 추가해서 진행 내용을 저장하여 중간에 이탈해도 진행화면을 볼 수 있게 설정모든 플레이어가 stand 및 버스.. 2025. 3. 23.
[G5] 백준 2225 - 합분해 (python3) https://www.acmicpc.net/problem/2225💡 해결방법1차원에선 점화식이 보이지 않아서 2차원 grid에서 접근했다.별다른 해결방법이 있던게 아니라 모든 경우의 수를 보고나면 규칙이 보일까 해서였다.운이 좋게 해결할 수 있던 문제다. 아래는 dp table을 채우기 위해 완전탐색을 하는 코드다.dp[n][k] = n을 k개의 합으로 구하는 방법#2225 합분해 dp table 테스트import syssys.setrecursionlimit(10**5)n, k = map(int, input().split()) dp = [[0 for _ in range(k+1)] for __ in range(n+1)]for i in range(n+1): dp[i][1] = 1for i in .. 2025. 3. 17.
2주차 실습 - 반복문 조건문 보호되어 있는 글 입니다. 2025. 3. 16.
[G3] 백준 1520 - 내리막 (Python3) https://www.acmicpc.net/problem/1520💡 해결방법DFS + DP메모제이션DFS 만으로 풀면 시간초과or메모리초과DP 만으로 풀면 메모리초과처음엔 상하좌우가 아니라 [좌,우,아래]로만 움직일 수 있는 줄 알고 O(N^3) 풀이를 준비했던,, (0,0)에서 (r-1, c-1) 위치로 이동하는 경우의 수를 구하는 문제이다.이동 조건은 상하좌우 다 되고, 대신 grid의 현재위치의 높이가 이동하려는 위치의 높이보다 높아야 된다.처음 접근했던 방법이다.목적지(10)에서 목적지로 가는 방법은 0개라고 가정하고, 목적지에서 상하좌우에 자기 높이보다 높은 숫자로 이동하면서 {현재 방법 + 1}로 두는 방법으로 접근을 했다. 하지만 결국 그냥 dfs로 푸는 것과 별 차이가 없었다. 아싸리 그.. 2025. 3. 10.
[G5] 백준 2230 - 수 고르기 (Python3) https://www.acmicpc.net/problem/2230💡 해결방법A 배열에 입력받은 원소들을 정렬하면 이 문제를 쉽게 풀 수 있다.항상 차이가 M이상인 두 수를 고를 수 있다.A 배열을 정렬하면, 투포인터를 적용할 수 있기 때문이다.투포인터는 정렬된 배열에서 순차적으로 접근할 때 적용할 수 있는 알고리즘이다.🧾코드# 2230 수 고르기N, M = map(int, input().split())arr = [int(input()) for _ in range(N)]arr.sort()l, r = 0, 0ans = float('inf')while l = M: l += 1 ans = min(ans, differ)print(ans) 2025. 3. 1.
[G2] 백준 7453 - 합이 0인 네 정수 (Python3) https://www.acmicpc.net/problem/7453완전탐색( O(n^4) )으로 모든 경우의 수(조합)을 따져서 풀면 시간 안에 절대 해결할 수 없다.4,000 × 4,000 × 4,000 × 4,000 = 256,000,000,000,000 (256조 번 연산) 따라서 더 효율적인 방법이 필요하다. 💡 아이디어A[a] + B[b] + C[c] + D[d] = 0 을 만족하는 (a,b,c,d) 순서쌍의 개수를 구하는 문제이다.위 식을( A[a] + B[b] ) + ( C[c] + D[d] ) = 0 으로 고쳐 써도 전혀 문제 없다. AB: 모든 A[i]+B[j] 조합을 저장한 배열 CD: 모든 C[k]+D[l] 조합을 저장한 배열그래서 AB[i]+CD[j]=0 인 경우의 개수를 세면 이 .. 2025. 2. 25.
[G5] 백준 3020 - 개똥벌레 (Python3) https://www.acmicpc.net/problem/3020 문제 설명높이가 HHH일 때, 몇 개의 벽을 뚫어야 하는지 계산하고,그중에서 최소로 뚫을 수 있는 횟수와 그런 높이가 몇 개인지 구하는 문제이다.해결 방법은 크게 두 가지로 나뉜다.누적합(Prefix Sum) 활용이분 탐색(Binary Search) 활용해결 방법 1: 누적합(Prefix Sum)누적합을 사용하면 높이별로 벽을 뚫어야 하는 개수를 빠르게 계산할 수 있다.알고리즘 설명석순(아래에서 위로 솟는 기둥)과 종유석(위에서 내려오는 기둥)을 나눈다.종유석 높이를 변환하여 H - 종유석 길이 + 1 형태로 정리석순과 종유석의 누적합 배열을 만든다.각 높이별로 벽을 뚫어야 하는 개수를 계산하여 최소값을 찾는다.💻 코드 (누적합)# 30.. 2025. 2. 25.
Binary Search Tree(이진 탐색 트리) Binary Search Tree는 특정한 규칙을 따르는 이진 트리이다.이진 트리는 부모 노드가 자식 노드를 최대 2개까지 갖는 트리이다.특정한 규칙이란왼쪽 자식 노드는 부모 노드보다 작거나 같다.오른쪽 자식 노드는 부모 노드보다 크다.이진 탐색은 주어진 목표를 향해 전체 크기의 반씩 나누고 비교하여 접근하는 탐색 방법이다.원래는 정렬된 배열에서만 가능했다. 하지만 이진 탐색 트리는 위의 규칙 덕분에 root 노드로부터 찾고자 하는 값을 비교해감으로써 원하는 값에 접근이 쉽다.  ✅ 장점1. 탐색, 삽입, 삭제의 연산이 평균적으로 빠르다.트리의 노드 개수가 n 일때, 탐색, 삽입, 삭제의 평균적인 시간 복잡도는 O(log n) 이다.트리의 높이가 h 일때, 연산을 최대 h번 한다.균형이 잘 갖춰진 트리일.. 2025. 2. 20.