[Python, 백준/2606번] 바이러스
·
코테/백준
☑️ [Python, 백준/2606번] 바이러스1️⃣ 문제신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다.어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨..
[Python, 백준/11724번] 연결 요소의 개수
·
코테/백준
☑️ [Python, 백준/11724번] 연결 요소의 개수1️⃣ 문제https://www.acmicpc.net/problem/11724방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오 2️⃣ 접근그래프 문제들은 예제 입력의 경우, 숫자로 전달하기 때문에 입력 값 설명을 유심히 봐야한다. 대부분 형태가 Vertex Count와 Edge Count 그리고 다음 줄에는 Edge Data를 전달하지만 이렇게 문자를 보는 것은 머릿속에서 쉽게 떠올리기 힘들다. 그래서 일단 그릴 수 있다면 그려본다. 예제 입력 1에 있는 데이터를 시각화 한다면, 다음과 같은 그래프가 나온다. 시각적으로 그려보면 출력 값이 2라는 사실을 직관적으로 알 수 있다...
[Python, 백준/1260번] DFS와 BFS
·
코테/백준
☑️ [Python, 백준/1260번] DFS와 BFS1️⃣ 문제https://www.acmicpc.net/problem/1260그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다.2️⃣ 접근인접 행렬 혹은 인접 리스트를 만들어서 간단하게 풀 수 있는 문제다. 입력 값이 [노드A, 노드B]를 쌍(Pair)으로 묶어서 준다. 요 Data만 가공해서 인접 행렬이나 인접 리스트로 만들면 되는데.. 이전에 풀었던 문제와 같이 find_index 함수를 만들어서 풀어보려고 했다. 비효율적이긴 하겠지만 재밌으..
[Python, 백준/1991번] 트리 순회
·
코테/백준
☑️ [Python, 백준/1991번] 트리 순회1️⃣ 문제이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오.예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) 후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트) 가 된다. 2️⃣ 접근문제 자체는 어렵지 않았다. 단순하게 Preorder, Inorder, Postorder 순서를 구하면 된다. 다만, 예제 데이터에서 트리 구..
[C++, 프로그래머스 - Lv.0] 주사위 게임 3
·
코테/프로그래머스
[C++, 프로그래머스 - Lv.0] 주사위 게임 3 사용 언어 : C++ 해당 문제는 주사위가 나온 값에 따라서 달라지는 점수 공식을 대입하여, 최종적인 점수를 반환하면 됐다. if문을 통해서 주사위가 나온 결과들을 도출하면 되는데, 다른 방법이 있을 것 같아서 아래의 코드가 나오게 되었다. switch문 안의 duple.second에 들어가 있는 데이터의 산출 방식은 a, b, c, d가 모두 2로 동일한 숫자를 가지고 있을 때, dupleMap[a ~ d]는 모두 dupleMap[2]를 의미하므로, duple.second는 4가 들어가게 된다. 이러한 성질의 차이를 통해서 swtich로 여러 case가 나뉠 수 있도록 했다. #include #incl..
[C++, 프로그래머스 - Lv.0] 연속된 수의 합
·
코테/프로그래머스
[C++, 프로그래머스 - Lv.0] 연속된 수의 합 사용 언어 : C++ 해당 문제는 힌트를 통해서 풀 수 있었다. 문제는 num과 total이 주어질 때, total을 만들 수 있는 num개의 수를 오름차순으로 구하는 것이 목표였다. 예로, num이 3이고 total이 12라면 3개의 수를 더해서 12가 되는 수들을 찾아서 오름차순으로 반환해야 했다. 이 문제는 num이 짝수인가, 홀수인가를 생각해서 잡을 수 있다. 입출력 예를 보면 num이 홀수일 경우, total / num의 값은 반환된 result의 가운데에 위치해있다. 짝수의 경우, total / num의 값은 반환된 result의 중간 부분에 위치해 있지만, 좌측 원소가 우측 원소에 비해서 1개가 더 많다. 해..