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의 개발 노트

검색 영역

컨텐츠 검색

재귀

  • 백준 9663 - N-Queen(C++)

    2023.06.06 by deulee

  • 백준 5639 - 이진 검색 트리(C++)

    2023.06.04 by deulee

  • 백준 2448 - 별 찍기 - 11(C++)

    2023.05.30 by deulee

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

    2023.05.24 by deulee

백준 9663 - N-Queen(C++)

문제 N-Queen 문제는 크기가 N•N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성해라. 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 15) 예제 입력 8 예제 출력 92 문제 해결 어디서 힌트를 얻을 수 있을까? '퀸', '서로 공격할 수 없게', 그리고 '방법의 수'라는 것을 보고 이 문제는 단순 구현 문제라는 것을 알 수 있었다. 우선 첫 줄에 퀸을 어디에 놓느냐 그리고 다음 줄에 퀸을 어디에 놓느냐에 따라 그 다음줄에 놓을 수 있는 퀸이 놓여지지 않는 곳을 결정할 수 있다. 즉, 해당 위치에 퀸을 놓았을 때와 안 놓았을 때로 구분되는데 이러한 문제는 백트래킹으로 쉽게 풀 수 있다. 퀸이 공격하는 방향은 상, ..

알고리즘/문제 2023. 6. 6. 18:54

백준 5639 - 이진 검색 트리(C++)

문제 전위 순회하는 이진 트리가 주어진다. 이를 통해 후위 순회한 결과를 출력한다. 입력 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 10^6보다 작은 양의 정수이다. 노드의 수는 10,000개 이하이다. 예제 입력 50 30 24 5 28 45 98 52 60 예제 출력 5 28 24 45 30 60 52 98 50 문제 해결 어디서 힌트를 얻을 수 있을까? 전위 순회라는 말에서 우리는 이것을 분할 정복으로 문제를 풀 수 있다는 것을 눈치챌 수 있다. 전위 순회는 (루트)(왼쪽 자식)(오른쪽 자식) 순으로 출력하는 순회 방법으로 맨 처음 출력되는 것이 루트라는 것을 알 수 있다. 또한, 이는 이진 트리이기 때문에 루트를 기준으로 왼쪽은 더 작은 값 오른쪽은 더 큰 값이라는 것을 알 ..

알고리즘/문제 2023. 6. 4. 23:30

백준 2448 - 별 찍기 - 11(C++)

문제 N이 주어졌을 때 첫째 줄부터 N번째 줄까지 별을 출력한다. 이때 규칙에 따라 출력해야 한다. 입력 첫째 줄에 N이 주어진다. N은 항상 3•2^k 수이다. (0 ≤ k ≤ 10) 예제 입력 24 예제 출력 * * * ***** * * * * * * ***** ***** * * * * * * ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * * * * * * * * * * * * * * * * * * * ***..

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

백준 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

추가 정보

인기글

최신글

페이징

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

티스토리툴바