[C++ / 백준 13023번] ABCDE

2025. 2. 20. 15:46·프로그래밍 공부/백준 (C++)

문제

 

 

 

시행 착오

 

 그래프가 기억이 안 나서 복습했다.

백트래킹, dfs 는 잘 하지만 그래프와 합쳐지니 연상이 잘 안 되었다. 항상 천천히 알고리즘을 생각해내는 연습이 필요해 보인다. (무작정 아는 방식으로 구현 X 머릿속에서 구체화)

 

해결 방법

 

그래프를 선언하고, 각 그래프마다 관계 또한 최대 2000개까지 들어올 수 있다.

사실상 2차원 배열 형태를 벡터를 이용해 표현한 것과 비슷한데, 

 

  1. 시작 노드를 정한다.
  2. 시작 노드에 저장되어있는 관계로 접근한다.
  3. 노드의 관계를 깊이우선탐색 하면서 cnt 가 4가 되는 노드순서를 찾는다.
  4. 끝

 

 

 

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;


int N, M;
vector<int> g[2000];

bool visited[2000] = { false };

bool exist = false;

void dfs(int node, int cnt)
{
    if (cnt == 4)
    {
        
        exist = true;
        return;

    }

    for (int i = 0; i < g[node].size(); i++)
    {
        int nextnode = g[node][i];

        if (!visited[nextnode])
        {
            visited[nextnode] = true;

            dfs(nextnode, cnt+1);

            visited[nextnode] = false;
        }
     
    }

}

int main()
{
  
    cin >> N >> M;

    for (int i = 0; i < M; i++)
    {
        int u, v;
        cin >> u >> v;

        g[u].push_back(v);
        g[v].push_back(u);

    }


    for (int i = 0; i < N; i++)
    {
        if (!visited[i])
        {
            visited[i] = true;
            dfs(i, 0);
            visited[i] = false;
        }

        if (exist)
        {
            cout << "1";
            return 0;
        }
    }

        if(!exist) cout << "0";

    return 0;
}

 

'프로그래밍 공부 > 백준 (C++)' 카테고리의 다른 글

[C++ / 백준 11724번] 연결 요소의 개수  (0) 2025.02.22
[C++ / 백준 1260번] DFS와 BFS  (0) 2025.02.21
[C++ / 백준 14391번] 종이 조각  (0) 2025.02.20
[C++ / 백준 1182번] 부분 수열의 합  (0) 2025.02.19
[C++ / 백준 11723번] 집합  (0) 2025.02.18
'프로그래밍 공부/백준 (C++)' 카테고리의 다른 글
  • [C++ / 백준 11724번] 연결 요소의 개수
  • [C++ / 백준 1260번] DFS와 BFS
  • [C++ / 백준 14391번] 종이 조각
  • [C++ / 백준 1182번] 부분 수열의 합
Rocketbabydolls
Rocketbabydolls
Rocketbabydolls
  • Rocketbabydolls
    With The Lights Out
    Rocketbabydolls
  • 전체
    오늘
    어제
    • 전체글 (183) N
      • 프로그래밍 공부 (117)
        • C (16)
        • Jumping into C++ (9)
        • MFC (C++) (1)
        • 자료구조 (1)
        • 알고리즘 (1)
        • 백준 (C++) (74)
        • 핸즈온 머신러닝 2판 (6)
        • Unseen 3기 준비 (4)
        • 원티드 포텐업 게임 개발자 양성과정 2기 (4)
      • 언리얼엔진5 (62) N
        • [Part1] 이득우의 언리얼 프로그래밍 (12)
        • [Part2] 이득우의 언리얼 프로그래밍 (2)
        • [Part2 복습] 이득우의 언리얼 프로그래밍 (3)
        • [Part3] 이득우의 언리얼 프로그래밍 (14)
        • [Part4] 이득우의 언리얼 프로그래밍 (0)
        • FPS 게임 1인 프로젝트 (6)
        • 각종 지식 (10) N
        • 블루프린트 Paper2D 로 게임 만들기 (14)
        • 팀 프로젝트 (1)
      • 일상 (1)
      • ETC (1)
        • 맥북 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      c++ 17298
      실전C프로그래밍
      언리얼엔진
      언리얼엔진 옵저버 패턴
      핸즈온 머신러닝 2판
      실전 C프로그래밍 실습문제
      언리얼엔진 디자인 패턴
      실전 C 프로그래밍
      실전C프로그래밍 나중채
      오블완
      티스토리챌린지
      언리얼엔진5 fps 프로젝트
      실전C프로그래밍 실습문제
      c언어
      실전 C프로그래밍
      핸즈온 머신러닝
      언리얼엔진 중재자 패턴
      실전 C프로그래밍 나중채
      언리얼엔진5
      C언어 실습문제
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    Rocketbabydolls
    [C++ / 백준 13023번] ABCDE
    상단으로

    티스토리툴바