C++ | STL::string 정리
·
알고리즘/Sudo Code
* 하나의 sentence로 이루어진 문장에서 단어별로 분리하기 #include using namespace std;int main(int argc, char const *argv[]){ string a = "It is time to study", res; int pos, max = INT_MIN; while ((pos = a.find(' ')) != string::npos) { string tmp = a.substr(0, pos); int len = tmp.size(); if (len > max) { max = len; res = tmp; } cout max) ..
백준[15663번] N과 M(9)
·
알고리즘
bool visited[10] : 자신과 중복되는 값을 제거하기 위해 사용 int xx : 중복순열을 제거하기 위해 이전에 입력한 값을 저장하고, 현재 받으려는 값과 비교하여 값이 같으면 중복 수열이므로 넘어가준다. #include #include #include using namespace std; int n, m; vector v; int res[10]; bool visited[10]; void dfs(int cnt) { if (cnt == m) { for (int i = 0; i m; int x; for (int i = 0; i > x; v.push_back(x); } sort(v.begin(), v.end()); dfs(0); ret..
백준[2133번] 타일 채우기
·
알고리즘
참고자료: https://yabmoons.tistory.com/536 [ 백준 2133 ] 타일 채우기 (C++) 백준의 타일채우기(2133) 문제이다.[ 문제 바로가기 ] [ 문제풀이 ]3 x N 크기의 벽을 2 x 1 , 1 x 2 타일들로만 채울 때, 그 경우의 수를 구해야 하는 문제이다.작은 수들부터 차근차근 만들어보면서 하 yabmoons.tistory.com 사용되는 알고리즘 : dp * 특별한 경우를 잘 확인해야한다. => 이전 타일을 이용해서 쌓아가는 걸 제외하고 특별한 모양 * n이 홀수일 경우는 애초에 고려하지 않는다. => 3 * odd의 경우 넓이는 홀수값이 되는데 2*1 또는 1*2로 채우는 경우는 값이 무조건 짝수가 나와야 한다. #include using namespace st..
백준[3197번] 백조와 호수
·
알고리즘
참고: https://codecollector.tistory.com/1184 (C++) - 백준(BOJ) 3197번 : 백조의 호수 https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 codecollector.tistory.com 생각 못한 부분: 1. 백조의 현재위치도 어쨋든 물일 것이다. 2. 기존에 생각했던 것은 방문위치를 매 번 BFS를 돌릴 때마다 초기화했는데, 그렇게 되면 1500*1500 ~= 대략 200만 이걸 최악의 경우로 가정했을때 1500*1500*1500 => 시간제한에 걸..
백준[1655번] 가운데를 말해요
·
알고리즘
#include #include using namespace std; int main(int argc, char const *argv[]) { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; priority_queue maxHeap; priority_queue minHeap; int x; for (int i = 0; i > x; if (maxHeap.size() minHeap.top()) { int a1 = minHeap.top(); int a2 = maxHeap.top(); minHeap.pop(); maxHeap.pop(); minHeap.push(a2); maxHeap.push(a1); } cout