Algorithm/Baekjoon
-
[Python][C++] 10026번 적록색약Algorithm/Baekjoon 2024. 8. 24. 14:31
문제https://www.acmicpc.net/problem/10026 코드1. Pythonfrom collections import dequedef bfs(x, y, n, graph, visited): """ BFS를 사용하여 연결된 영역을 탐색하는 함수. :param x: 시작 위치의 행 인덱스 :param y: 시작 위치의 열 인덱스 :param n: 그래프의 크기 (nxn) :param graph: 색상 정보를 담고 있는 2차원 리스트 :param visited: 방문 여부를 기록하는 2차원 리스트 """ queue = deque() # BFS를 위한 큐 초기화 color = graph[x][y] # 현재 위치의 색상 저장 ..
-
[Python][C++] 9461번 파도반 수열Algorithm/Baekjoon 2024. 8. 22. 17:31
문제https://www.acmicpc.net/problem/9461 코드1. Pythondef main(): # DP 테이블 초기화 (1부터 100까지) dp = [0] * 101 # 기본값 설정 (문제에서 주어진 초기 조건) dp[1] = 1 # 1번째 삼각형 숫자 dp[2] = 1 # 2번째 삼각형 숫자 dp[3] = 1 # 3번째 삼각형 숫자 dp[4] = 2 # 4번째 삼각형 숫자 dp[5] = 2 # 5번째 삼각형 숫자 # DP를 이용한 점화식 계산 # dp[i] = dp[i-1] + dp[i-5] -> i번째 삼각형 숫자는 i-1번째와 i-5번째 삼각형 숫자의 합 for i in range(6, 101): ..
-
[Python][C++] 9375번 패션왕 신해빈Algorithm/Baekjoon 2024. 8. 22. 17:26
문제https://www.acmicpc.net/problem/9375 코드1. Pythondef main(): t = int(input()) # 테스트 케이스의 수 입력 for _ in range(t): # 각 테스트 케이스에 대해 반복 n = int(input()) # 각 테스트 케이스에서의 아이템 수 입력 mp = {} # 아이템 종류별 개수를 저장할 딕셔너리 초기화 for _ in range(n): # 아이템 수만큼 반복 name, type_ = input().split() # 아이템의 이름과 종류 입력 if type_ in mp: # 이미 해당 종류가 딕셔너리에 있으면 ..
-
[Python][C++] 9019번 DSLRAlgorithm/Baekjoon 2024. 8. 21. 13:33
문제https://www.acmicpc.net/problem/9019 코드1. Pythonfrom collections import deque# 각 명령어의 동작을 정의하는 함수들def D(x): return (x * 2) % 10000 # D 명령어: x를 두 배로 만든 후 10000으로 나눈 나머지def S(x): return x - 1 if x > 0 else 9999 # S 명령어: x에서 1을 뺀 값, x가 0이면 9999로 설정def L(x): return (x % 1000) * 10 + x // 1000 # L 명령어: x를 왼쪽으로 회전 (십진수 자릿수 이동)def R(x): return (x % 10) * 1000 + x // 10 # R 명령어: x를 ..
-
[Python][C++]7662번 우선순위 큐Algorithm/Baekjoon 2024. 8. 19. 21:05
문제https://www.acmicpc.net/problem/7662 코드1. Pythonimport sysimport heapqinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용# 테스트 케이스 수만큼 반복for _ in range(int(input())): min_heap = [] # 최소 힙 (최소값을 빠르게 꺼내기 위함) max_heap = [] # 최대 힙 (최대값을 빠르게 꺼내기 위함, 음수로 저장하여 사용) visited = {} # 각 숫자가 힙에 몇 번 들어갔는지 추적하기 위한 딕셔너리 # 각 테스트 케이스의 명령어 수만큼 반복 for _ in range(int(input())): ..
-
[Python][C++] 7576번 토마토Algorithm/Baekjoon 2024. 8. 18. 01:09
문제https://www.acmicpc.net/problem/7576 코드1. Pythonfrom collections import deque# m과 n을 입력받음 (m: 가로 길이, n: 세로 길이)m, n = map(int, input().split())# 보드 초기화board = []# 보드 상태를 입력받아 2차원 리스트로 저장for _ in range(n): board.append(list(map(int, input().split())))# 방향 벡터 설정 (상, 하, 좌, 우)dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]# BFS를 위한 큐 초기화q = deque()# 익은 토마토(값이 1인 칸)의 위치를 모두 큐에 추가for i in range(n): for ..
-
[Python][C++] 7569번 토마토Algorithm/Baekjoon 2024. 8. 16. 22:58
문제https://www.acmicpc.net/problem/7569 코드1. Pythonfrom collections import deque# 보드와 방문 여부를 저장하는 배열 초기화board = [[[0 for _ in range(100)] for _ in range(100)] for _ in range(100)]visited = [[[0 for _ in range(100)] for _ in range(100)] for _ in range(100)]def bfs(n, m, h): # 방향벡터 설정 (6방향) dx = [-1, 1, 0, 0, 0, 0] dy = [0, 0, -1, 1, 0, 0] dz = [0, 0, 0, 0, -1, 1] q = deque() # 익..
-
[Python][C++] 5525번 IOIOIAlgorithm/Baekjoon 2024. 8. 14. 21:43
문제https://www.acmicpc.net/problem/5525 코드1. Python# 입력 받기n = int(input())m = int(input())s = input()cnt = 0 # 패턴이 나타나는 횟수를 저장할 변수i = 0 # 현재 문자열의 인덱스# 문자열을 순회하면서 패턴을 찾기 위한 반복문while i = n: cnt += k - n + 1 # 가능한 패턴의 시작점 수만큼 카운트를 증가시킴 else: i += 1 # "IOI" 패턴이 아닐 경우 다음 인덱스로 이동# 최종적으로 패턴이 몇 번 나타났는지 출력print(cnt) 2. C++#include #include using namespace std;int main() { int ..