deulee의 개발 노트

고정 헤더 영역

글 제목

메뉴 레이어

deulee의 개발 노트

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (112)
    • C++ (79)
      • C++98 (36)
      • Modern C++(11, 14, 17, 20) (34)
      • C++ STL (9)
    • 데이터베이스 (0)
    • 컴퓨터 구조 (0)
    • 운영체제 (0)
    • 읽은 책 (0)
    • 네트워크 (0)
    • 알고리즘 (31)
      • 이론 (5)
      • 문제 (26)
    • 잡글 (1)
      • 아이디어 (0)
      • 해야할 것 (0)
      • 목표 (0)
      • 정보글 (1)
    • git (0)

검색 레이어

deulee의 개발 노트

검색 영역

컨텐츠 검색

분류 전체보기

  • 백준 1991 - 트리 순회(C++)

    2023.05.24 by deulee

  • 백준 1967 - 트리의 지름(C++)

    2023.05.24 by deulee

  • 백준 1932 - 정수 삼각형(C++)

    2023.05.24 by deulee

  • 백준 1918 - 후위 표기식(C++)

    2023.05.24 by deulee

  • 백준 1916 - 최소비용 구하기(C++)

    2023.05.23 by deulee

  • 백준 1865 - 웜홀(C++)

    2023.05.23 by deulee

  • 벨만 포드 알고리즘(Bellman-Ford Algorithm)

    2023.05.23 by deulee

  • 백준 12930 - 두 가중치(C++)

    2023.05.23 by deulee

백준 1991 - 트리 순회(C++)

문제 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 문제이다. 전위 순회 : (루트)(왼쪽 자식)(오른쪽 자식) 중위 순회 : (왼쪽 자식)(루트)(오른쪽 자식) 후위 순회 : (왼쪽 자식)(오른쪽 자식)(루트) 입력 첫째 줄에 이진 트리의 노드의 개수 N이 주어진다. (1 = 0) preOrder(varr[S][1]); } void inOrder(int S) { if (varr[S][0] >= 0) inOrder(varr[S][0]); std::cout = 0) inOrder(varr[S][1]); } void postOrder(int S) { if (varr[S][0..

알고리즘/문제 2023. 5. 24. 21:10

백준 1967 - 트리의 지름(C++)

문제 사이클이 없는 무방향 그래프 트리(tree)가 주어질 때 트리의 지름을 구하는 문제다. 입력 첫째 줄에 노드의 개수 N (1 N; int X, Y, C; int ret; while (1) { if (!(std::cin >> X >> Y >> C)) break ; varr[X].push_back(P(Y, C)); varr[Y].push_back(P(X, C)); } dfs(1, 0); std::memset(cache, 0, sizeof(cache)); maxDis = 0; dfs(maxNode, 0); std::cout

알고리즘/문제 2023. 5. 24. 18:56

백준 1932 - 정수 삼각형(C++)

문제 삼각형이 주어지고 위에서 아래로 내려오는데, 이때 그냥 내려오거나 오른쪽 대각선으로 내려가야만 한다. 이런 상황에서 합이 최대가 되는 경로에 있는 수의 합을 출력해라. 입력 첫째 줄에 삼각형의 크기 n(1 > N; for (int i = 0; i > board[i][j]; } for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cache[i][j] = -1; } } std::cout

알고리즘/문제 2023. 5. 24. 17:56

백준 1918 - 후위 표기식(C++)

문제 흔히 우리가 사용하는 수식은 중위 표기법으로 (A+B) 사용되고 있으며 이를 후위 표기법(AB+)으로 바꾸는 문제이다. 이는 연산자가 피연산자 뒤에 위치하는 방법이다. 이를 실행하는 방법은 다음과 같다. 중위 표기식을 연산자의 우선순위에 따라 괄호로 묶어준다. A+B*C == (A+(B*C)) 괄호 안의 연산자를 괄호의 오른쪽으로 옮겨준다. (A+(B*C)) == (A+BC*) == ABC*+ 입력 첫째 줄에 중위 표기식이 주어진다. 단, 알파벳 대문자로만 이루어져 있으며 연산자가 가장 앞에 오거나 곱셈이 생략되는 경우는 주어지지 않는다. 표기식은 알파벳 대문자와 +, -, *, /, (, ) 로만 이루어져 있으며, 길이는 100을 넘지 않는다. 예제 입력 A*(B+C) 예제 출력 ABC+* 문제 ..

알고리즘/문제 2023. 5. 24. 17:29

백준 1916 - 최소비용 구하기(C++)

문제 정점 N개와 M개의 간선이 주어진다. A번째 정점에서 B번째 정점까지 도달하는 데 드는 최소 비용을 출력하라. 입력 첫째 줄에 N(1 M; for (int i = 0; i > X >> Y >> C; varr[X].push_back(P(Y, C)); } for (int i = 0; i > S >> D; Dijkstra(S); std::cout

알고리즘/문제 2023. 5. 23. 15:19

백준 1865 - 웜홀(C++)

문제 N개의 정점이 있고 M개의 방향성이 없는 간선과 W개의 방향성이 있는 그래프가 주어진다. 이때 W는 음수의 가중치를 가지고 있다. 어느 시작점이든 출발을 했을 때보다 시간이 더 적은 경우가 있으면 "YES" 없으면 "NO"를 출력하는 문제이다. 입력 첫 번째 줄에는 테스트케이스의 수 T가 주어진다. 두 번째 줄부터 T개의 테스트케이스가 차례로 주어진다. 각 테스트 케이스의 첫 번째 줄에는 정점의 수 N(1 > N >> M >> W; std::vector adj[N]; for (int i = 0; i > X >> Y >> C; adj[X - 1].push_back(P(Y - 1, C)); adj[Y - 1].push_back(P(X - 1..

알고리즘/문제 2023. 5. 23. 14:36

벨만 포드 알고리즘(Bellman-Ford Algorithm)

벨만 포드 알고리즘이란? 벨만 포드 알고리즘(Bellman-Ford Algorithm)은 다익스트라 알고리즘과 마찬가지로 시작점을 정해주면 시작점 기준으로 다른 모든 정점으로의 최단 거리를 구해주는 알고리즘이다. 이때, 벨만 포드 알고리즘의 최대 특징은 다익스트라 알고리즘과는 달리 간선의 가중치가 음수일 때도 사용할 수 있다는 것이다. 벨만 포드 알고리즘의 구조 그럼 벨만 포드 알고리즘은 무엇이 다르기에 음수의 가중치가 있어도 최단경로를 구할 수 있는 것일까? 벨만 포드 알고리즘은 2중 for문을 이용하여 가능한 모든 경우를 전부 다 체크한다. 우선 최단 경로의 정의를 알아볼 필요가 있다. 최단 경로란 같은 정점을 두 번 지날 일이 없다는 것을 의미한다. 즉, 가능한 최단 경로의 간선 개수는 많아봐야 V..

알고리즘/이론 2023. 5. 23. 14:16

백준 12930 - 두 가중치(C++)

문제 N개의 정점으로 이루어진 그래프 G가 있고, 그래프 G의 모든 간선은 가중치를 2개 가지고 있다. 이 말은 특정 노드 i에서 특정 노드 j로 가는 가중치가 2개 있다는 것이다. 0번 정점에서 1번 정점으로 가는 최단 경로를 찾아야 한다. 경로의 비용은 경로에 있는 간선의 가중치 1을 모두 더한 값인 W1와 가중치 2를 모두 더한 값인 W2를 곱해서 구할 수 있다. 여기서 곱하는 것에 유의하며 문제를 풀어야 한다. 입력 첫째 줄에 정점의 수 N이 주어진다. (2 b.idx) return true; else return false; } return false; } }; std::vector varr[2][21]; int dist[2][21]; int INF = 1e8; int Dijkstra(int S..

알고리즘/문제 2023. 5. 23. 11:13

추가 정보

인기글

최신글

페이징

이전
1 ··· 10 11 12 13 14
다음
TISTORY
deulee의 개발 노트 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바