목록알고리즘/PS 문제 (31)
뜌릅
https://www.acmicpc.net/problem/2548 2548번: 대표 자연수 첫째 줄에는 자연수의 개수 N이 입력된다. N은 1 이상 20,000 이하이다. 둘째 줄에는 N개의 자연수가 빈칸을 사이에 두고 입력되며, 이 수들은 모두 1 이상 10,000 이하이다. www.acmicpc.net 매우 간단한 문제이다. 코드포스 a번으로 나올 거 같다. #include using namespace std; #define endl '\n' #define fast_io ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); void solve() { int n; cin>>n; vector v(n); for(auto &x: v)cin>>x; sort(v.begi..
https://www.acmicpc.net/problem/14929 그냥 풀게 되면 시간 초과가 나게 된다. 따라서 밑과 같이 tmp 변수를 만들어서 풀게 되었다. void solve() { int n; cin>>n; vector v(n); for(auto & x: v)cin>>x; long long sum =0; long long tmp = 0; for(int i =0; i
https://www.acmicpc.net/problem/18323 18323번: Photoshoot Farmer John is lining up his $N$ cows ($2\le N\le 10^3$), numbered $1\ldots N$, for a photoshoot. FJ initially planned for the $i$-th cow from the left to be the cow numbered $a_i,$ and wrote down the permutation $a_1,a_2,\ldots,a_N$ on a sheet of paper. U www.acmicpc.net #include using namespace std; #define fast_io ios_base::sync_with_st..
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net bfs을 활용하여 푸는 문제입니다. #include #include using namespace std; #define endl '\n' #define fast_io ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define rep(i, j) for(ll i=0;i= n || _y >= n)continue; if (visited[_x][_y..
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 백트레킹을 사용하여 풀 수 있는 문제입니다. 다만 ㅗ ㅓ ㅏ ㅜ 모양의 조각들은 백트레킹으로는 풀 수 없으므로 따로 함수를 만들어서 풀었습니다. #include #include using namespace std; #define endl '\n' #define fast_io ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define rep(i, j..
https://www.acmicpc.net/problem/16991 16991번: 외판원 순회 3 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 도시의 좌표 x, y가 주어진다. 모든 좌표는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 두 도시의 위치가 같은 경우 www.acmicpc.net 이미 외판원 순회를 풀어 보았지만, 시간이 오래 지나서 복습을 할겸 외판원 순회3을 풀어보았다. 한번 풀어본 문제였음에도 고생을 많이 하였다. 이 문제는 dp문제로 dp문제답게 어느부분이 겹치는지를 확인해야 한다.(시작점은 어디로 두든지 상관이 없다.) 겹치는 부분을 저장하기 위해 vector [n][2의 16승]을 활용하였다. 해당 dp는 시작 point와 ..
dfs을 활용하여 간단하게 풀 수 있는 문제이다. 이미 접근한 좌표는 다시 접근하지 못하게 visited배열을 활용한다. #include #include using namespace std; #define endl '\n' #define fast_io ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define rep(i, j) for(ll i=0;i= n || c = n)continue; if (type == 0) { if (!visited[r][c] && board[x][y] == board[r][c]) { visited[r][c] = true; dfs(r, c, type); } } else if (type == 1) { if (!vi..
https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net BFS을 활용하여 풀수있는 간단한 문제입니다. visited배열을 사용해서 한번 접근한 숫자에는 다시 접근하지 못하도록 하여 메모리 초과를 방지해야 합니다. 지역변수의 초기값은 쓰레기값으로 초기화 된다는 것을 깜빡하고 있어서 푸는데에 오래 걸렸습니다. #include #include using namespace std; #define endl '\n' #define fast_io io..
https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net multiset container을 사용하면 매우 쉽게 풀 수 있는 문제입니다. 오랜만에 set활용에 대한 복습을 할 수 있었습니다. #include #include using namespace std; #define endl '\n' #define fast_io ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define rep(i, j) fo..
https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 7576번 https://twocastle9.tistory.com/36 와 매우 유사한 문제이다. 위 아래의 방향도 고려하게 되었으나, 사실상 약간의 변형을 하면 되기에 큰 문제가 되지 않는다. #include #include using namespace std; #define endl '\n' #define fast_io ios_base::sync_with_stdio(0)..