전체 글 7

2026.01.26 트리& 이진 트리 문제풀이 (백준 1240번, 9934번)

오늘의 문제입니다. 첫 줄에는 노드의 수 N과 알고자하는 쌍의 수 M을 입력합니다.그 다음 줄부터는 두 노드와 노드 사이의 거리를 N-1개의 줄에 거쳐 입력하고, M개의 줄에 걸쳐 거리를 알고자하는 노드를 입력합니다. 출력에서는 M개의 줄에 걸쳐 알고자했던 두 노드 사이의 거리를 출력합니다. 우선 입력받은 N과 두 노드 사이의 거리를 활용해 트리를 구현하고, 두 노드 사이의 거리를 구해야겠습니다. #include#include#include#includeusing namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N,M; cin>>N>>M; //2차원 배열 vector > > vec(N+1); for(int i..

2026.01.23 트리&이진 트리 문제풀이(백준 11725번, 1991번)

오늘의 문제는 트리입니다. 첫 줄에는 트리의 노드 개수를 나타내는 N을, 두번째 줄 부터는 N개의 줄에 거쳐 각 노드와 노드의 자식노드 2개를 입력합니다.전에도 이 문제를 풀며 헷갈렸던 부분인데, 주어진 입력 형식만 지키면 노드의 입력순서는 상관이 없다고 하니 이 부분 짚고 넘어가면 좋을 것 같습니다. 입력받은 노드들 토대로 트리를 구성하고 전위, 중위, 후위 순으로 결과를 출력할 수 있는 방법을 찾는 것이 핵심일 것 같습니다.#include와 DFS 또는 BFS를 생각해 볼수도 있겠네요.풀이는 아래와 같습니다. #include#includeusing namespace std;vector tree[26];//전위(rott-left-rightvoid preorder(char node){ if(node==..

2026.01.22 스택&큐 (백준 1966번, 4949번)

안녕하세요. 벌써 방학의 절반 이상이 지나가고 있네요.오늘도 역시 문제 2문항 풀어보겠습니다. 프린터가 FIFO방식으로 프린팅한다고 이야기하고 있습니다. FIFO면 큐 알고리즘을 사용해야겠네요.그러나 새로 만든 프로그램에 의하면 큐의 front가 다른 요소들보다 중요도가 가장 큰 경우에만 인쇄를 하고, 그렇지 않을 경우 맨 뒤로 보내야 한다고 합니다. 큐의 front보다 다른 요소의 중요도가 더 클 경우 큐의 front를 push해서 맨 뒤에 삽입하고 front는 pop을 해주면 되겠습니다. 입력의 첫줄에는 테스트 케이스의 개수를 입력받습니다.각 테스트 케이스는 총 두 줄에 거쳐 입력되는데 첫번째 줄에는 N과 M이 주어집니다. 이때 N은 문서의 개수, M은 M번째 인덱스가 정렬 후 몇번째 순서로 ..

2026.01.21 스택&큐 문제풀이(백준 15828번, 10799번)

오늘의 문제는 백준 15828번, 10799번 입니다. 라우터에서는 버퍼를 FIFO로 처리 후 제거하므로 버퍼는 큐 알고리즘을 따른다고 볼 수 있습니다.첫줄에는 버퍼의 크기인 N이, 이후에는 라우터가 처리할 정보들이며 양수는 패킷의 번호, 0은 패킷을 처리했다는 의미이며 -1은 입력 종료라고 합니다. 그렇다면 큐를 생성해 양수일 경우 수를 순서대로 큐에 넣어주고, 0일 경우 가장 앞의 요소를 pop, -1라면 종료후 큐에 남은 요소들을 출력하면 되겠습니다.단, N에 유의하여 큐가 N 이상 저장할 수 없도록 해야 합니다.if-else문을 바쁘게 사용해주면 되겠네요. #include#includeusing namespace std;int main(){ ios::sync_with_stdio(fals..

2026.01.21 스택&큐 문제풀이(백준 9012번, 11866번)

오늘의 문제입니다. 본 문제는 기존에 풀었던 괄호 문제에서와 유사한 방식으로, open과 colse의 쌍이 맞는 것을 VPS 그렇지 않은 것은 VPS가 아닌 것으로 취급합니다. VPS라면 YES, 그렇지 않다면 NO를 출력하도록 요구하고 있습니다. 문제의 첫줄에는 입력 받을 줄의 수인 N을 입력받아 for문으로 처리.N번의 줄에 거쳐 입력받는 줄들이 각각 VPS인지의 여부에 따라 if문을 활용해 YES와 NO를 출력하면 되겠습니다. 그렇다면 VPS 여부는 어떻게 따지면 될까요? 여기서 사용할 알고리즘은 스택인가요 큐인가요?기존 괄호 문제에선 open일때 open이 나오면 open의 개수를 증가시키고, close가 나오면 쌍이 맞으므로 open을 지웠던 것 같습니다. 차이는 해당 문제에서는 VPS가 되기..

2026.01.19 스택&큐 문제풀이(백준 10773번, 18258번)

오늘의 문제는 10773번, 18258번 입니다. 첫줄에 N의 수를 입력한 뒤, N개의 줄에 거쳐 수를 입력하는 것이므로 N은 for문으로 처리해주면 되겠습니다.정수들을 배열에 순차적으로 저장하되 정수가 '0'이라면 가장 뒤에 있는 정수를 지우는 형식이므로 LIFO의 스택 구조입니다.코드로 쓰면 다음과 같이 쓸수 있겠습니다. #include#includeusing namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N; cin>>N; stack stack; //int형 스택 만들기 for(int i=0;i>a; if(a==0){ ..

2026.01.16 스택&큐 문제풀이(백준 12605번, 11899번)

안녕하세요.처음으로 티스토리 글을 작성하게 됐네요.저는 공대에 재학중인 23학번, 2026년 기준 올해로 3학년이 되는 학생입니다.제가 23학번이라서, 새내기가 됨과 동시에 gpt가 등장해 코딩시 gpt를 자주 이용했습니다.그래서 AI학과 학부생임에도 부끄럽게도 코딩을 잘 하지 못합니다.(핑계일뿐이지만요.)앞으로 졸업 후 실무적으로 코딩이 필요한 일들이 있을것이고, 정보처리기사나 빅데이터기사 등.. 자격증 취득에 있어서 필수적이라 생각해 더이상 미룰수가 없어 스터디를 시작하게 되었습니다. 이번 스터디에서 초기에는 답을 내는 것보단 이해와 흐름을 중점으로 진행할 예정입니다.함수 및 알고리즘 이해도가 높아지면 그때부턴 답을 내는 것을 목표로 하려합니다.따라서 전에는 gpt 의존도가 70~80%이었다면, 초기..