알고리즘 문제풀이/백준
-
[백준/BOJ] 4889번 안정적인 문자열 (C++)알고리즘 문제풀이/백준 2020. 11. 22. 00:06
www.acmicpc.net/problem/4889 4889번: 안정적인 문자열 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우 www.acmicpc.net 괄호가 입력으로 들어올 때 고려해야 할 경우는 다음과 같습니다. 1. 괄호의 짝이 맞는 경우 2. '}' 가 먼저 들어온 경우 먼저 1번의 경우 괄호 문자열이 입력으로 들어올 때, 짝이 맞는 경우는 전부 제거해줘야 합니다. 그리고 2번의 경우는 스택이 비어있을 때, '}' 가 먼저 들어온 경우 이는 변환이 필요하기 때문에 변환한 수를 증가시키고, 스택에 변환된 괄호의 문자를 넣어줍니다. 이는 나중에 스택의 ..
-
[백준/BOJ] 12100번 2048 (Easy)알고리즘 문제풀이/백준 2020. 10. 10. 21:27
www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 삼성 역랑 테스트 기출 문제 : 시뮬레이션(구현) DFS를 이용하여 해결할 수 있는 브루트포스/구현 문제입니다. 보드를 상하좌우 움직여 블록을 합치는 것을 구현하기 굉장히 어려운 문제였습니다. 보드를 움직여 블록을 합치는 것은 다음과 같이 진행됩니다. 1. 보드를 기울이는 방향의 첫번째 인덱스부터 끝까지 블록의 값이 0이 아니라면 큐에 블록의 값을 넣어줍니다. 2. 현재 블록의 값에..
-
[백준/BOJ] 13460번 구슬 탈출 2 (C++)알고리즘 문제풀이/백준 2020. 10. 9. 17:32
www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 풀이 DFS와 BFS 둘다 이용해서 풀이가 가능한 문제입니다. 해당 문제의 핵심이라고 생각하는 부분은 빨간 구슬과 파란 구슬의 이동에 따른 방문 여부를 확인하기 위해서 배열을 4차원으로 선언한다는 점과 이동하는 과정에서 두 구슬이 겹칠 때의 처리라고 생각합니다. void move(int &nx, int &ny, int dx, int dy, int &d) { wh..