Algorithm 5

[Algorithm] BFS란?

* 해당 글은 BaaaaaaaarkingDog 님의 블로그 강의를 참고하여 작성한 글입니다.BFS란?: Breadth First Search.- 다차원 배열에서 각 칸을 방문할 때 너비를 우선으로 방문하는 알고리즘- 가까운 것부터 차례대로 탐색하는 방식- 층 (layer) 단위로 퍼져 나간다.BFS의 핵심 도구: 큐(Queue)먼저 발견한 가까운 칸부터 처리하기 위해FIFO(First In First Out) 인 큐를 쓴다.BFS의 기본 흐름1. 시작점을 큐에 넣는다2. 방문 처리3. 큐에서 하나 꺼낸다4. 그 점과 연결된 점들을 큐에 넣는다5. 큐가 빌 때까지 반복BFS의 전형적인 코드 구조해당 강의에서 제시해준 코드 구조이다.https://github.com/encrypted-def/basic-alg..

Algorithm/PS 2026.02.09

[BOJ] 11720 - 숫자의 합

※ 책『Do it! 알고리즘 코딩테스트 (C++편 ) 』에 기반한 글입니다. https://www.acmicpc.net/problem/11720 간단한 문제지만 형 변환에 대한 내용을 정리하려고 글을 작성한다. char to intinput[i] - '0';가장 먼저 해당 문제에서 사용한 형 변환 방법이다.input은 string형이므로, input[i]는 char형이다.이때 '0'을 빼주는 것은 '0'의 아스키 코드 값 48을 빼주는 것이다.0부터 9까지가 10진수 48 ~ 57이기 때문에, char형에서 '0'을 빼준다면 숫자로 변환이 가능하다.string형 -> 숫자형#include string sNum = "1234";int inum = stoi(sNum);stoi() 함수를 사용하여 strin..

Algorithm/PS 2026.01.01

[C++] 이차원 벡터

※ 책『Do it! 알고리즘 코딩테스트 (C++편 ) 』에 기반한 글입니다. 코딩 테스트 문제에서 그래프와 관련된 알고리즘이 자주 등장하는데, 이때 그래프 구조를 표현하는 데 많이 사용하는 것이 이차원 벡터이다.우선 2차원 벡터의 선언 및 사용법은 아래 블로그에서..https://leeeegun.tistory.com/3 [C++ STL] 2차원 vector 선언 및 사용법※ 이 포스팅은 기본적으로 vector에 대한 개념을 알고 있다는 전제하에 작성. 우선 2차원 vector의 선언에 앞서 일반적인 vector 선언을 살펴보면, 1 2 vector v; v.pushback(7); 위와 같은 형식으로 특정한leeeegun.tistory.com이차원 벡터를 이용한 그래프 구현01단계. 이차원 벡터 선언과..

[자료구조] Linked List (1)

[C언어로 쉽게 풀어쓴 자료구조 / 천인국 / 생능출판]을 토대로 쓴 글입니다.리스트(List): 차례대로 항목들을 나열하여 자료를 정리하는 방법리스트의 항목은 순서 또는 위치를 갖는다 연산- 삽입 연산: 리스트에 새로운 항목을 추가- 삭제 연산: 리스트에서 항목을 삭제- 탐색 연산: 리스트에서 특정한 항목 찾기 구현배열? 가장 간단하게 리스트 구현할 수 있음, 순차적으로 메모리가 할당된다- 장점: 구현이 간단하고 속도가 빠르다- 단점: 리스트의 크기가 고정되는 점 -> 메모리 issue와 관련된다 연결 리스트- 장점: 크기가 제한되지 않는다. 중간에서 쉽게 삽입, 삭제 가능하다- 구현이 배열에 비해 복잡하다=> 정리해야 할 자료가 많을 경우 연결 리스트를 사용하는 것이 유리하다 연결 리스트(Linked..

[BOJ] 10773 - 제로

출처: https://www.acmicpc.net/problem/10773How to solve?Main Problem: 0을 입력할 때마다 최근에 쓴 수를 지워야 함Solve Idea: Stack을 사용한다.0이 아닐때는 push로 값을 대입하고, 0일 때는 pop을 이용하여 stack의 top에 있는 값을 지운다. #define _CRT_SECURE_NO_WARNINGS#include #define MAX 100001int Stack[MAX];int top = -1;void push(int item);int pop();int main(){ int iArrayLen; int iInputNum; int iStack[MAX]; int iSum = 0; int iDel; scanf("%d", &iArray..

Algorithm/PS 2024.04.29