kwon's Blog

개발 블로그

백준 1935번 후위 표기식 2

Baekjoon algorithm

Problem 1935후위 표기식 2문제후위 표기식과 각 피연산자에 대응하는 값들이 주어져 있을 때, 그 식을 계산하는 프로그램을 작성하시오. 입력첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이는 1......

백준 6588번 골드바흐의 추측

Baekjoon algorithm

Problem 6588골드바흐의 추측문제742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 예를 들어 8은 3 + 5로 나타낼 수 있고, 3과 5는 모두 홀수인 소수이다. 또, 20 = 3 + 17 = 7 + 13,......

백준 10799번 쇠막대기

Baekjoon algorithm

Problem 10799쇠막대기문제여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전......

백준 1152번 단어의 개수

Baekjoon algorithm

Problem 1152단어의 개수문제영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 ......

C++ 범위 기반 for문

C/C++

범위 기반 for문 (range-based for statement)일반적인 for문은 다음과 같은 형태이다. 1234567const int n = 10;int arr[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}for(int i = 0; i < n; i++){ cout << arr[i] ......

C++ 입력 함수 - cin, cin.get(), getline()

C/C++

cin <iostream>에 포함되어 있다. 표준 입력 버퍼에서 개행 문자를 제외한 값을 가져온다. 공백이나 개행 입력 시 공백 이전까지의 값만 결과로 받아들인다. 개행 문자를 입력 버퍼에 남겨둔다. 1234567// 정수int n;cin >> n;// 문자열string str;cin >> str; 위와 같이 사용이 ......

C++ STL sort() 함수

C/C++

STL sort() 함수 헤더파일에서 제공하는 STL로서 주어진 범위 내에서 원소들을 정렬한다. 이때 정렬하는 방식을 사용자가 정의할 수 있고, 동일한 원소에 대해서는 그 순서가 보장되지 않는다. std::sort는 숫자 뿐만 아니라 대소 비교가 가능한 모든 원소에 대해서 정렬을 수행할 수 있다. 즉 int뿐 아니라 char, string 역시 정렬이......

크루스칼(Kruskal Algorithm) 알고리즘

Algorithm

크루스칼(Kruskal Algorithm)크루스칼 알고리즘은 가장 적은 비용으로 모든 노드를 연결하기 위해 사용하는 알고리즘이다. 즉, 최소 비용 신장 트리를 만들기 위한 대표적인 알고리즘이라고 할 수 있다. 흔히 여러 개의 도시가 있을 때 각 도시의 도로를 이용해 비용을 최소한으로 연결하고자 할 때 실제로 적용되는 알고리즘이다. 아래의 그래프를 보면......

합집합 찾기(Union-Find) 알고리즘

Algorithm

합집합 찾기(Union-Find) Union-Find는 대표적인 그래프 알고리즘이며 서로소 집합(Disjoint-Set) 알고리즘이라고도 부른다. 여러 개의 노드가 존재할 때 두 개의 노드를 선택해서 현재 이 두 노드가 서로 같은 그래프에 속하는지 판별하는 알고리즘이다. Union-Find는 두 가지 연산으로 이루어져 있다. Find() : x가 어떤......

깊이 우선 탐색(Depth First Search, DFS) 알고리즘

Algorithm

이번에는 깊이 우선 탐색에 대해 알아보자. 깊이 우선 탐색(Depth First Search, DFS) 깊이 우선 탐색(depth-first search: DFS)은 맹목적 탐색방법의 하나로 탐색트리의 최근에 첨가된 노드를 선택하고, 이 노드에 적용 가능한 동작자 중 하나를 적용하여 트리에 다음 수준(level)의 한 개의 자식노드를 첨가하며, 첨가된......