플라즈밍
플라즈마 IT
플라즈밍
  • All (163)
    • MindSet (2)
    • Wisdom (8)
    • Book (18)
    • [Web] (6)
      • [Web]Guide (2)
      • [Web]HTML-CSS-JS (1)
      • [Web]ReactJS (0)
      • [Web]NextJS (1)
    • 퀀트주식투자 (4)
      • [리포트]포트폴리오 (4)
    • 자산배분전략 (2)
      • [리포트]자산배분전략 (1)
    • 포트폴리오 (0)
      • 발걸음 (0)
    • 개발 Note (3)
    • TipNote (5)
    • 알고리즘 (27)
      • 백준[BOJ] 오답노트 (27)
      • 백준[BOJ] 강의 정리 노트 (0)
    • etc-posts (18)
      • Unity :: C# 튜토리얼 (18)
    • Web&Know (23)
    • 끄적임 (4)
    • 세상이슈 (0)
    • Youtube 유튜브 (3)
      • Youtube 채널소개 (3)
    • 창업 Know&Idea (1)
    • Web&Dev (4)
    • 프로젝트 (6)
      • Unity5 Project (3)
      • UnrealEngine4 Project (2)
      • Web Page (1)
    • 주가차트-기술적분석 (2)
    • BlockChain (7)
    • SystemDesign (11)

인기 글

최근 글

hELLO · Designed By 정상우.
플라즈밍

플라즈마 IT

알고리즘/백준[BOJ] 오답노트

C++ fill 이용한 배열 초기화 1차원 배열 2차원 배열

2020. 1. 20. 21:06
반응형

여태까지 구글링을 통해 얻은 정보인, fill 이용한 배열 초기화를 다음과 같은 방식으로 했다.

 

    fill(&check[0], &check[1001] + 1, 0);

fill에서 오류가 난줄 모르고 BFS,DFS 알고리즘에 애러가 있는줄알고 해매었다.

 

//https://www.acmicpc.net/problem/14889
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
int n, m, v;
int check[1001];
vector<int> graph[1001];
void dfs(int x)
{
    check[x] = 1;
    cout << x << " ";
    for (int i = 0; i < graph[x].size(); i++)
    {
        int next = graph[x][i];
        if (check[next] == 0)
        {
            dfs(next);
        }
    }
}
void bfs(int x)
{
    queue<int> q;
    q.push(x);
    check[x] = 1;
    cout << x << " ";
    while (!q.empty())
    {
        int current = q.front();
        q.pop();
        for (int i = 0; i < graph[current].size(); i++)
        {
            int next = graph[current][i];
            if (check[next] == 0)
            {
                q.push(next);
                check[next] = 1;
                cout << next << " ";
            }
        }
    }
}
int main()
{
    //그래프를 입력 받기
    cin >> n >> m >> v;
    for (int i = 0; i < m; i++)
    {
        int u, v;
        cin >> u >> v;
        graph[u].push_back(v);
        graph[v].push_back(u);
    }
    // 정렬
    for (int i = 1; i <= n; i++)
    {
        sort(graph[i].begin(), graph[i].end());
    }
    dfs(v);
    //dfs 돌리고 , 초기화하고 , bfs 돌리기.
    fill(&check[0], &check[1001] + 1, 0);
    cout << "\n";
    bfs(v);
}

 

 

C++ algorithm - fill을 통한 1차원 배열 초기화

 

    #define SIZE 1001
    int check[SIZE];
    fill(&check[0], &check[0] + SIZE, 0);

 

C++ algorithm - fill을 통한 2차원 배열 초기화

 

#define SIZE 1001
int check[SIZE][SIZE];
fill(&check[0], &check[0] + SIZE*SIZE, 0);

 

C++ algorithm - fill을 통한 N차원 배열 초기화

위 방법대로 규칙을 적용하면, 3차원이든 4차원이든 매우 쉽다.!!!!

반응형
저작자표시 비영리 (새창열림)

'알고리즘 > 백준[BOJ] 오답노트' 카테고리의 다른 글

C++ 배열 인덱스 1부터 사용 하기 - 백준 알고리즘 오답노트 2011  (0) 2019.05.07
C++ 소수점 반올림 안됨. fixed가 고장났을때 - 백준 알고리즘 오답노트 2755  (0) 2019.05.07
구름IDE 디버깅 하는 방법 - 백준 알고리즘 오답노트 1913  (0) 2019.05.07
알고리즘 고수의 코드를 보다. - 백준 알고리즘 오답노트 5073  (0) 2019.05.07
다이나믹 프로그래밍 오버플로어 - 백준 알고리즘 오답노트 1012  (0) 2019.05.07
    '알고리즘/백준[BOJ] 오답노트' 카테고리의 다른 글
    • C++ 배열 인덱스 1부터 사용 하기 - 백준 알고리즘 오답노트 2011
    • C++ 소수점 반올림 안됨. fixed가 고장났을때 - 백준 알고리즘 오답노트 2755
    • 구름IDE 디버깅 하는 방법 - 백준 알고리즘 오답노트 1913
    • 알고리즘 고수의 코드를 보다. - 백준 알고리즘 오답노트 5073
    플라즈밍
    플라즈밍
    퀀트 주식투자 자산배분 데이터분석 정보 공유 프로그래밍,투자 주제의 책 강의 리뷰 노하우 전수

    티스토리툴바