본문 바로가기

BOJ 5558 - 치 ~ 즈 문제 링크https://www.acmicpc.net/problem/5558 문제 해결 1. 최소 시간으로 치즈를 모두 먹어야한다. 상하좌우로 움직일 수 있으므로 BFS (넓이 우선 탐색)를 사용한다. 2. 번호 순서대로 치즈를 먹기 위해서 왔던 길도 되돌아가야하므로 BFS를 응용해야한다. 3. 한 번에 해결하기 보다는 (시작점 → 1번 치즈), (1번 치즈 → 2번 치즈), (2번 치즈 → 3번 치즈) ... 순으로 문제를 나눠서 해결하는 것이 좋다. 주의할 점 || 생각해볼 점 1. 방문했던 곳을 매번 false로 초기화시켜줘야한다. 참고 - ※ 정확하고 부드러운 태클은 언제나 환영입니다. 더보기
BOJ 2605 - 줄 세우기 문제 링크https://www.acmicpc.net/problem/2605 문제 해결 1. 매 번 뽑기가 진행될 때, 중간에 삽입이 될 수 있다. → 자료구조 List를 사용하는 것이 좋다. 주의할 점 || 생각해볼 점 1. iterator사용하는 C++ 문법을 조금 신경쓰면 될 거 같다. 참고 - ※ 정확하고 부드러운 태클은 언제나 환영입니다. 더보기
BOJ 2504 - 괄호의 값 문제 링크https://www.acmicpc.net/problem/2504 문제 해결1. 여는 괄호문자들은 스택(이 문제에선 Deque를이용했다)에 삽입한다. 이 때, 문자와 Boolean값을 Pair의 형태로 유지한다. 그 이유는 여는 괄호문자가 중복이 되었을 때, 곱하는 데에 사용되었는 지 체크하기 위해서다. 2. 만약 닫는 괄호문자 이 나오면, ① 스택이 비어있거나, 제일 최근에 쌓인 문자가 닫는 괄호문자와 쌍을 이루지 않는다 → 잘못된 괄호열② ①번이 아니고, 답에 괄호 값을 곱했다 → 값에 영향을 주지 않고 되돌아간다.③ ①, ②번이 아니다 → 스택의 처음 괄호문자부터 최근에 쌓인 괄호문자까지의 괄호 값을 곱해서 답(ans)에 더 해준다. 3. 모든 괄호 문자열을 체크했는데 스택에 문자가 남아있.. 더보기