본문 바로가기

분류 전체보기41

[백준] 9663번 N-Queen (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (1 ≤ N ≤ 15)예제 입력 18출력첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다.예제 출력 192풀이문제 해결 방법이 문제는 백트래킹을 이용하여 해결할 수 있습니다. 주요 해결 단계는 다음과 같습니다:퀸 배치 검사:같은 행, 열, 대각선에 다른 퀸이 있는지 확인1차원 배열을 사용하여 각 행의 퀸 위치를 저장백트래킹 구현:각 행에 퀸을 하나씩 배치현재 위치가 유효한지 검사유효하지 않으면 다음 위치로 이동해결 방법 카운트:N개의 퀸.. 2025. 4. 13.
[백준] 3425번 고스택 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크고스택은 스택을 이용한 간단한 프로그래밍 언어이다. 이 언어는 10가지의 명령어를 가지고 있으며, 스택을 이용하여 연산을 수행한다.명령어는 다음과 같다:NUM X: X를 스택의 가장 위에 저장한다. (0 ≤ X ≤ 10^9)POP: 스택 가장 위의 숫자를 제거한다.INV: 첫 번째 수의 부호를 바꾼다.DUP: 첫 번째 숫자를 하나 더 스택의 가장 위에 저장한다.SWP: 첫 번째 숫자와 두 번째 숫자의 위치를 서로 바꾼다.ADD: 첫 번째 숫자와 두 번째 숫자를 더한다.SUB: 첫 번째 숫자에서 두 번째 숫자를 뺀다.MUL: 첫 번째 숫자와 두 번째 숫자를 곱한다.DIV: 첫 번째 숫자를 두 번째 숫자로 나눈다.MOD: 첫 번째 숫자를 두 번째 숫자로 나눈.. 2025. 4. 13.
[백준] 14003번 가장 긴 증가하는 부분 수열 5 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 30, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000)예제 입력 1610 20 10 30 20 50출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.둘째 줄에는 가장 긴 증가하는 부분 수열을 출력한다.그러한 수열이 여러가지인 경우 아무거나 .. 2025. 4. 13.
[백준] 11438번 LCA2 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크N(2 ≤ N ≤ 100,000)개의 정점으로 이루어진 트리가 주어진다. 트리의 각 정점은 1번부터 N번까지 번호가 매겨져 있으며, 루트는 1번이다.두 노드의 쌍 M(1 ≤ M ≤ 100,000)개가 주어졌을 때, 두 노드의 가장 가까운 공통 조상(LCA, Lowest Common Ancestor)을 찾는 프로그램을 작성하시오.입력첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리를 구성하는 간선 정보가 주어진다. 각 줄에는 두 개의 정수가 주어지는데, 이는 해당 간선이 연결하는 두 정점을 의미한다.다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정점 쌍이 주어진다.예제 입력 1151 21 32 4.. 2025. 4. 13.
[백준] 10845번 큐 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 큐에 들어있는 정수의 개수를 출력한다.empty: 큐가 비어있으면 1, 아니면 0을 출력한다.front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10.. 2025. 4. 12.
[백준] 10828번 스택 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 스택에 들어있는 정수의 개수를 출력한다.empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다.둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다.주어지는 정수는 1보다 크.. 2025. 4. 12.