diff --git "a/minjeong/BruteForce/2025-07-26-[PGS]-\352\261\260\353\246\254\353\221\220\352\270\260\355\231\225\354\235\270\355\225\230\352\270\260.py" "b/minjeong/BruteForce/2025-07-26-[PGS]-\352\261\260\353\246\254\353\221\220\352\270\260\355\231\225\354\235\270\355\225\230\352\270\260.py" deleted file mode 100644 index d906e11..0000000 --- "a/minjeong/BruteForce/2025-07-26-[PGS]-\352\261\260\353\246\254\353\221\220\352\270\260\355\231\225\354\235\270\355\225\230\352\270\260.py" +++ /dev/null @@ -1,41 +0,0 @@ -def solution(places): - def is_safe(place): - for i in range(5): - for j in range(5): - if place[i][j] != 'P': - continue - - for dx, dy in dirs: - ni, nj = i + dx, j + dy - if not (0 <= ni < 5 and 0 <= nj < 5): - continue - if place[ni][nj] != 'P': - continue - - dist = abs(dx) + abs(dy) - if dist == 1: - return 0 # 거리 1에서 바로 P면 위반 - elif dist == 2: - # 파티션 여부 확인 - if dx == 0: # 수평 - if place[i][j + dy // 2] != 'X': - return 0 - elif dy == 0: # 수직 - if place[i + dx // 2][j] != 'X': - return 0 - else: # 대각선 - if place[i][nj] != 'X' or place[ni][j] != 'X': - return 0 - return 1 - - dirs = [ - (-1, 0), (1, 0), (0, -1), (0, 1), # 거리 1 - (-2, 0), (2, 0), (0, -2), (0, 2), # 일직선 거리 2 - (-1, -1), (-1, 1), (1, -1), (1, 1) # 대각선 거리 2 - ] - - answer = [] - for place in places: - answer.append(is_safe(place)) - - return answer diff --git "a/minjeong/DFSBFS/2025-07-26-[PGS]-\352\261\260\353\246\254\353\221\220\352\270\260\355\231\225\354\235\270\355\225\230\352\270\260.py" "b/minjeong/DFSBFS/2025-07-26-[PGS]-\352\261\260\353\246\254\353\221\220\352\270\260\355\231\225\354\235\270\355\225\230\352\270\260.py" deleted file mode 100644 index d906e11..0000000 --- "a/minjeong/DFSBFS/2025-07-26-[PGS]-\352\261\260\353\246\254\353\221\220\352\270\260\355\231\225\354\235\270\355\225\230\352\270\260.py" +++ /dev/null @@ -1,41 +0,0 @@ -def solution(places): - def is_safe(place): - for i in range(5): - for j in range(5): - if place[i][j] != 'P': - continue - - for dx, dy in dirs: - ni, nj = i + dx, j + dy - if not (0 <= ni < 5 and 0 <= nj < 5): - continue - if place[ni][nj] != 'P': - continue - - dist = abs(dx) + abs(dy) - if dist == 1: - return 0 # 거리 1에서 바로 P면 위반 - elif dist == 2: - # 파티션 여부 확인 - if dx == 0: # 수평 - if place[i][j + dy // 2] != 'X': - return 0 - elif dy == 0: # 수직 - if place[i + dx // 2][j] != 'X': - return 0 - else: # 대각선 - if place[i][nj] != 'X' or place[ni][j] != 'X': - return 0 - return 1 - - dirs = [ - (-1, 0), (1, 0), (0, -1), (0, 1), # 거리 1 - (-2, 0), (2, 0), (0, -2), (0, 2), # 일직선 거리 2 - (-1, -1), (-1, 1), (1, -1), (1, 1) # 대각선 거리 2 - ] - - answer = [] - for place in places: - answer.append(is_safe(place)) - - return answer diff --git "a/minjeong/DFSBFS/2025-08-03-[\353\260\261\354\244\200]-#2458-\354\225\210\354\240\204\352\265\254\354\227\255.py" "b/minjeong/DFSBFS/2025-08-03-[\353\260\261\354\244\200]-#2458-\354\225\210\354\240\204\352\265\254\354\227\255.py" deleted file mode 100644 index 5f1e5aa..0000000 --- "a/minjeong/DFSBFS/2025-08-03-[\353\260\261\354\244\200]-#2458-\354\225\210\354\240\204\352\265\254\354\227\255.py" +++ /dev/null @@ -1,42 +0,0 @@ -import sys -sys.setrecursionlimit(100000) - -input = sys.stdin.readline - -# 방향벡터 -directions = [(-1, 0), (0, 1), (1, 0), (0, -1)] - -def dfs(x, y): - # 깊이 탐색을 하며 안전 영역 탐색 - visited[x][y] = True - for dx, dy in directions: - nx, ny = x + dx, y + dy - if 0 <= nx < N and 0 <= ny < N and \ - not visited[nx][ny] and map[nx][ny] > h: - dfs(nx, ny) - - -N = int(input()) -map = [list(map(int, input().split())) for _ in range(N)] -max_height = 0 - -# 맵 내의 최대값 구하기 -for m in map: - max_height = max(max_height, max(m)) - -answer = 0 - -for h in range(0, max_height + 1): # 물이 잠기지 않는 상황을 고려하여 0부터 시작 - visited = [[False for _ in range(N)] for _ in range(N)] - count = 0 - - for i in range(N): - for j in range(N): - # 아직 방문하지 않았고 h(높이) 이상인 지점이라면 DFS 탐색을 한다. - if not visited[i][j] and map[i][j] > h: - dfs(i, j) - count += 1 # DFS 탐색을 마치면 하나의 안전 영역이므로 count - - answer = max(answer, count) # 안전영역 최대 개수 계산 - -print(answer) \ No newline at end of file diff --git "a/minjeong/DFSBFS/2025-08-04-[\353\260\261\354\244\200]-#2644-\354\264\214\354\210\230\352\263\204\354\202\260.py" "b/minjeong/DFSBFS/2025-08-04-[\353\260\261\354\244\200]-#2644-\354\264\214\354\210\230\352\263\204\354\202\260.py" deleted file mode 100644 index b4d02dd..0000000 --- "a/minjeong/DFSBFS/2025-08-04-[\353\260\261\354\244\200]-#2644-\354\264\214\354\210\230\352\263\204\354\202\260.py" +++ /dev/null @@ -1,31 +0,0 @@ -import sys -input = sys.stdin.readline - -def dfs(start, cnt): - global chonsu - if start == y: - chonsu = cnt - return - - for i in graph[start]: - if not visited[i]: - visited[i] = True - dfs(i, cnt + 1) - visited[i] = False - - -n = int(input()) # 전체 사람 개수 -x, y = map(int, input().split()) -graph = [[] for _ in range(n+1)] -visited = [False for _ in range(n + 1)] -chonsu = -1 # 정답으로 반환할 촌수 - -m = int(input()) # 부모 자식들간의 관계 개수 -for _ in range(m): - a, b = map(int, input().split()) - graph[a].append(b) - graph[b].append(a) - -visited[x] = True -dfs(x, 0) -print(chonsu) diff --git "a/minjeong/DFSBFS/2025-08-05-[\353\260\261\354\244\200]-#5014-\354\212\244\355\203\200\355\212\270\353\247\201\355\201\254.py" "b/minjeong/DFSBFS/2025-08-05-[\353\260\261\354\244\200]-#5014-\354\212\244\355\203\200\355\212\270\353\247\201\355\201\254.py" deleted file mode 100644 index 713ce4f..0000000 --- "a/minjeong/DFSBFS/2025-08-05-[\353\260\261\354\244\200]-#5014-\354\212\244\355\203\200\355\212\270\353\247\201\355\201\254.py" +++ /dev/null @@ -1,46 +0,0 @@ -import sys -from collections import deque - -input = sys.stdin.readline - -# 총 층수 F, 현재 층 S, 목표 층 G, 위 버튼 U, 아래 버튼 D -F, S, G, U, D = map(int, input().split()) - - -def bfs(): - if S == G: # 강호가 이미 도착해있다면 0번 클릭 - return 0 - - visited = [False for _ in range(F + 1)] - queue = deque([(S, 1)]) # (현재 층, 버튼 클릭 횟수) - visited[S] = True - - while queue: - x, cnt = queue.popleft() - - # 위로 이동 - nx = x + U - if nx <= F and not visited[nx]: - if nx == G: # 목표층 도착 - return cnt - queue.append((nx, cnt + 1)) - visited[nx] = True # 방문여부 표시 꼭 넣어주기 - - # 아래로 이동 - nx = x - D - if nx > 0 and not visited[nx]: - if nx == G: # 목표층 도착 - return cnt - queue.append((nx, cnt + 1)) - visited[nx] = True - - # 목표층에 도달하지 못한 경우 - return -1 - - -# BFS 탐색 -answer = bfs() -if answer == -1: - print("use the stairs") -else: - print(answer) \ No newline at end of file diff --git "a/minjeong/Stack, Queue, Priority Queue/2025-08-06-[\353\260\261\354\244\200]-#1158-\354\232\224\354\204\270\355\221\270\354\212\244\353\254\270\354\240\234.py" "b/minjeong/Stack, Queue, Priority Queue/2025-08-06-[\353\260\261\354\244\200]-#1158-\354\232\224\354\204\270\355\221\270\354\212\244\353\254\270\354\240\234.py" deleted file mode 100644 index 8884364..0000000 --- "a/minjeong/Stack, Queue, Priority Queue/2025-08-06-[\353\260\261\354\244\200]-#1158-\354\232\224\354\204\270\355\221\270\354\212\244\353\254\270\354\240\234.py" +++ /dev/null @@ -1,19 +0,0 @@ -import sys -from collections import deque -input = sys.stdin.readline - -N, K = map(int, input().split()) -# 1번부터 N번까지 사람을 큐에 넣기 -people = deque([i+1 for i in range(N)]) -answer = [] # 제거된 순서를 저장할 리스트 - -while people: - # K-1번 앞의 원소를 빼서 뒤로 보냄 (원형 이동) - for _ in range(K-1): - cur = people.popleft() - people.append(cur) - # K번째에서 제거 - answer.append(people.popleft()) - -# 정답 출력 -print("<" + ", ".join(map(str, answer)) + ">") \ No newline at end of file