본문 바로가기

전체 글102

[백준] 1701번 : Cubeditor (KMP 알고리즘) www.acmicpc.net/problem/1701 1701번: Cubeditor Cubelover는 프로그래밍 언어 Whitespace의 코딩을 도와주는 언어인 Cubelang을 만들었다. Cubelang을 이용해 코딩을 하다보니, 점점 이 언어에 맞는 새로운 에디터가 필요하게 되었다. 오랜 시간 고생한 www.acmicpc.net //C++ // 백준 1701번 : Cubeditor #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; vector getFailFunction(string& a) //문자열 a에 대한 fail함수 구하는 방법 { int num = a.length(); /.. 2021. 1. 16.
[백준] 16236번 : 아기상어 www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제를 2덩어리로 나눠서 생각하면 편한 문제이다. 현재 위치에서 어디로 가야할 지 찾는 부분(bfs(shark_x, shark_y, v, shark_size) 함수가 담당. 이거는 최악의 경우 n^2 시간이 걸림. 최악의 경우 배열의 모든 원소를 다 따져봐야 하는 경우도 있으니까) 그리고 이차원 배열의 모든 원소의 위치마다 그 경우를 따져야 하니까(main함수의 while문에서 담당). 그것도 최악의 경.. 2021. 1. 1.
[백준] 2751번 : 수 정렬하기 2 & Merge Sort 에 대해서 www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net //c++ //MergeSort #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; typedef long long ll; typedef pair pl; ll Min(ll a, ll b) { return (a < b) ? a : b; } ll Max(ll a, ll b) { retu.. 2020. 10. 30.
[백준] 16197번 : 두 동전 www.acmicpc.net/problem/16197 16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, �� www.acmicpc.net //c++ #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; typedef long long ll; char arr[24][24]; int dir[4][2] = { {0,1},{0,-1},{1,0},{-1,0} }; int n, m; int isinside(int x, int y) //.. 2020. 9. 14.
[백준] 17413번 : 단어 뒤집기 2 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 � www.acmicpc.net //c++ #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; typedef long long ll; stack s; void print(stack& s) { while (!s.empty()) { cout 2020. 8. 27.
[백준] 7569번 : 토마토 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net //C++ #include #define F_I ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; typedef long long ll; int m, n, h, notomato = 0; int dir[6][3] = { {0,1,0},{0,-1,0},{1,0,0},{-1,0,0},{0,0,1},.. 2020. 8. 22.