출처: https://3months.tistory.com/307 [Deep Play]

백준 83

[BOJ] 12100 2048(Easy)

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 이 문제를 풀면서 가장 어려웠던 것은 현재 상태를 저장하는 이중배열을 만드는 것이었다. 함수가 호출 될 때마다, 이중포인터에 공간을 할당하여 이중배열을 만든 뒤 전에 있던 상태를 저장해 주었다. 그 외에 막혔던 부분은 2 2 4 0 0 일 경우 왼쪽으로 움직이면 4 4 0 0 0 이 되어야 하는데 8 0 0 0 0이 되게 구현을 해놓아서 check이라는 배열을 이용하여..

백준/Simulation 2022.01.21

[BOJ] 16918 봄버맨

https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net 그래프 이론과 구현이 융합된 문제이다. 처음에 아무것도 일어나지 않아 조금 헷갈리는 문제이나 실버여서 그런지 쉽다. 터져야 되는 폭탄을 queue에 넣고 3초 뒤에 그 size만큼 반복문을 돌리며 폭탄이 설치된 칸과 인접한 네칸을 빈 칸처리 해주었다. #include #include #include using namespace std; int R,C,N; int dx[]={-1,1,0,0}; int dy[]={0,..

백준/Simulation 2022.01.18

[BOJ] 15683 감시

https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 구현문제인데 푸는데 너무 오래 걸렸다. 결국 모든 경우의 수를 다 따져야 하기 때문에 효율적으로 구현하기 보다는 빠르게 구현하는데 초점을 두어야 한다. 구현 문제는 결국 집중력 싸움이라는 것을 잊지말자 ㅎ #include #include using namespace std; int N,M,s; int map[8][8]; vector v; int res=100; void up_count(..

백준/Simulation 2022.01.18

[BOJ] 3190 뱀

https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 큰 알고리즘은 없고 그냥 구현 문제이다. 구현 문제를 풀 때 주의할 점은 놓치는 경우의 수가 없는지를 꼭 확인해야 한다는 것이다. 이 문제를 풀면서 뱀의 방향 정보를 모두 입력한 후에 끝나지 않는 경우를 파악하지 못하여 찾는데 상당한 시간을 사용했다. 만약 방향 정보를 모두 입력한 후에도 뱀이 죽지 않았다면 맵의 최대 길이를 실행시간으로 주었다. #include #include using namespac..

백준/Simulation 2022.01.18

[BOJ] 13841 It Prefokery Pio

https://www.acmicpc.net/problem/13841 13841번: It Prefokery Pio You are a member of a secret society named Japanese Abekobe Group, which is called J. A. G. for short. Those who belong to this society often exchange encrypted messages. You received lots of encrypted messages this morning, and you tried to decrypt them a www.acmicpc.net 이 문제는 어떤 문자열이 주어졌을 때, 해당 문자열로 만들 수 있는 가장 긴 palindorme을 구하는 문제이..

백준/DP 2022.01.15

[BOJ] 1748 수 이어 쓰기 1

https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 나에게 큰 고뇌를 주는 문제... 수 이어 쓰기 2를 풀다가 안풀려서 1을 풀어봤는데 확실히 쉽당~ 자리수를 i라고 할 때 i*(pow(10,i)-pow(10,i-1))만큼 자리 수가 늘어난다는 것을 활용하여 풀었다. #include #include using namespace std; int main(){ int N; cin>>N; int tmp=N,cnt=0; while(tmp!=0){ tmp/=10; cnt++; } int sum=0; for(int i=1;i

백준/String 2021.09.07

[BOJ] 1515 수 이어 쓰기

https://www.acmicpc.net/problem/1515 1515번: 수 이어 쓰기 세준이는 1부터 N까지 모든 수를 차례대로 공백없이 한 줄에 다 썼다. 그리고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다. 세준 www.acmicpc.net 왜 난이도가 실버 4인지 모르겠다. 최소 실버 1은 되야하는 문제. 고민하다가 친구의 도움을 받아서 해결했다. 나는 처음에 조건을 걸어 풀려고 했다. 하지만 조건이 너무 많더라. 항상 느끼는 건데 이런 유형의 문제는 규칙이 너무 많다. 아니 어쩌면 규칙이 없을 수도 있다. 이런 문제를 만난다면 규칙을 찾기 보다는 큰 데이터 하나를 만들어서 돌리는 것이 훨씬 빨리 문제를 풀 수 있다. 대신 시간복..

백준/String 2021.09.06

[BOJ] 13023 ABCDE

https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 전형적인 dfs 문제이다. 모든 점을 인자로 넣어 dfs를 돌면서 한칸 옮겨갈 때 마다 cnt에 1을 더해주고 cnt가 5일 경우를 찾으면 dfs를 멈췄다. #include #include #include using namespace std; int N,M; vector v[2001]; bool flag=false; bool check[2001]; void dfs(int now,int cnt){ if(flag) return; if(cnt==5){ flag=true; return; } check[now]..

백준/DFS,BFS 2021.09.06

[BOJ] 5430 AC

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net string을 다루는 능력을 길러주는 문제이다. 나는 deque를 사용하여 R이 들어올 경우 flag을 사용하여 pop_front()를 할지 pop_back()을 할지 결정하였다. 주의 할 점은 입력받는 배열을 크기가 0인 경우에도 내 코드는 ""이 들어가기 때문에 예외 처리를 해줘야 한다는 것이다. #include #include #include #include using namespace std; int main(){ cin.tie(0); cout...

백준/String 2021.09.06