반응형
반응형
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 난이도: solved.ac 실버 2 스택을 활용하는 문제다 문제 이해가 안 되는 분들을 위해 먼저 주어진 예제 1을 통해 설명해 보겠다 첫 번째인 4를 만들기 위해서는 스택에서 4를 꺼내야 한다 현재 스택은 텅 비어있는 상태이므로 1부터 4까지의 수를 차례로 스택에 넣어준다 따라서 ++++가 된다 그리고 맨꼭대기에 ..
https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 난이도: solved.ac 실버 1 처음엔 배열을 이용해 트리를 만드려다가 트리가 한쪽으로 쏠려있는 경우에 배열의 크기가 2^26 - 1가 될 수 있으므로 Linked List(연결리스트)로 만들어주었다 그리고 두 가지 방식으로 풀어보았는데 두 코드 모두 아래의 순서로 진행된다 1) root 노드를 따로 만들어줌 2) 나머지 자식 노드들을 만들어 tree에 연결시켜 줌 3) preore..
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 난이도: solved.ac 실버 1 사용 알고리즘 DFS (BFS도 가능) 접근 방법 DFS와 BFS 알고리즘 기본 문제다 먼저 for문을 이용해 한 칸씩 이동하며 집을 찾아주고, 집을 찾으면 해당 집이 속한 단지를 DFS를 이용해 찾아주었다 이때 집의 개수도 size라는 변수를 통해 세어주었다 그리고 한 단지의 탐색이 끝나면 num이라는 배열에 위에서 구한 size를 저장시켜주었다 이 과정을 반복..
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 난이도: solved.ac 실버 4 분명 맞게 짠 거 같은데 계속 10%에서 틀렸다고 떠서 맞왜틀;;;하면서 굉장히 짜증 났던 문제다...;;ㅋ 근데 진짜 틀린게 맞았음 ㅎ 일단 나는 스택을 이용해 문제를 풀었다 스택의 top을 가리키는 int형 변수 top의 초기값을 -1으로 주고 '(' 나 '[' 가 입력되면 '(' 와 '[' 를 스택에 넣어주고 top을 1 더해주고 ')..
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 난이도: solved.ac 실버 3 DFS를 이용하면 쉬운 문제다 (BFS로 풀어도 될 것 같음) 각 컴퓨터끼리의 연결을 그래프로 나타내서 arr라는 2차원 배열에 각 노드의 연결을 나타내주고 visited라는 1차원 배열에 컴퓨터의 방문을 나타내주었다 #define _CRT_SECURE_NO_WARNINGS #include #define MAX 101 int arr[MAX][MAX]; int visi..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 난이도: solved.ac 실버 1 BFS를 알고 있다면 쉽게 풀 수 있는 문제다 먼저 map에 입력을 받아주고, visited라는 2차원 배열을 통해 해당 index의 위치를 방문했는지 표시하며 이때 표시는 출발 위치로부터 떨어진 거리로 표시한다 문제에서 출발 위치와 도착 위치도 칸을 세야 한다고 했으므로 visited를 1부터 시작했다 Ex. visited[0][0] = 1 visited[0][1] = 2 ... 내가 말을 ..