[백준/Python] 1935. 후위 표기식 2
·
코딩테스트/BAEKJOON
🍀 문제유형: 스택 🍀  문제설명(링크 참조) https://www.acmicpc.net/problem/1935 🍀  풀이코드 n = int(input())cmds = input()nums = []for _ in range(n): nums.append(int(input()))#pt = 0stk = []for cmd in cmds: if cmd.isalpha(): stk.append(nums[ord(cmd)-ord('A')]) #stk.append(nums[pt]) #pt += 1 else: a = stk.pop() b = stk.pop() #print(f"about a{a}, b{b}") if c..
[백준/Python] DFS/BFS-5014번. 스타트링크
·
코딩테스트/BAEKJOON
📌 문제 링크:https://www.acmicpc.net/problem/5014 ✅ 문제 유형: BFS/DFS✅ 풀이 방법 버튼을 누르는 최소 횟수를 구하는 것이므로 BFS를 사용한다. 📢 visited를 선언해, 여기에 버튼을 누른 횟수를 저장해 나가면 된다. 틀렸던 이유 U 또는 D가 0이라서 그 다음 위치가 S층과 똑같은 경우는 고려할 필요가 없다. 📢 (반례) 예를 들어, F = 2, S = 2, G = 1, U = 0, D = 1일 때 최대 2층인 건물에서, 현재 위치 2층이고 목적지는 1층이다. 이때 U가 0이므로 위로 올라갈 방법은 없고, 아래로 1층 내려가는 것 뿐이다. 그 다음 위치 후보지는 [s+u, s-d] = [2, 1] 일 때 큐에는 2와 1이 저장된다. 📢 단, 현재 위치가 2층..
[백준/Python] DFS/BFS-1697번. 숨바꼭질
·
코딩테스트/BAEKJOON
📌 문제링크: https://www.acmicpc.net/problem/1697 ✅ 문제유형: BFS/DFS ✅ 풀이방법 가장 빠른 시간을 출력해야 하니까 BFS를 선택했다. DFS/BFS 선택하는 전략: 2024.10.09 - [코딩테스트] - [알고리즘 전략] DFS/ BFS [알고리즘 전략] DFS/ BFSDFS가 유리한 경우 재귀적인 특징과 백트래킹을 이용해 모든 경우를 하나씩 전부 탐색하는 경우 그래프의 크기가 클 경우 최적화된 답을 찾는 것이 아닐 경우 경로의 특징을 저장해야 하는 경programmerhub-heeya16.tistory.com 시간초과 이유: time 값을 각 점에 방문 당시의 cnt값으로 queue에 같이 넣고 빼려 했더니, 자료구조 상 시간이 오래 걸리는 것 같다. 📢 해결..
[백준/Python] DFS/BFS-2644번. 촌수 문제
·
코딩테스트/BAEKJOON
📌 문제 설명 우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌으로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌, 나와 아버지 형제들과는 3촌이 된다. 여러 사람들에 대한 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 프로그램을 작성하시오. # 입력 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하..
[백준/Python] DFS/BFS-2667번. 단지번호 붙이기
·
코딩테스트/BAEKJOON
📌 문제 설명과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오.# 입력첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. # 출력첫 번째 줄에는 총 단지수를 출력하시오. 그..
[백준/Python] DFS/BFS-2606번. 바이러스
·
코딩테스트/BAEKJOON
📌 문제 설명 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴..