본문 바로가기

백준31

BOJ 2263 - 트리의 순회(tree) https://www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1≤n≤100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net - 포스트오더의 맨 마지막 노드가 루트노드이다. 이후 루트노드의 왼쪽, 오른쪽 서브트리를 순회하는 함수를 재귀적으로 짜면 된다. #include #include using namespace std; int in[100001]; int post[100001]; int idx[100001]; // pre 루-왼-오 // in 왼-루-오 // post 왼-오-루 // preorder 출력 void print(int inStart, in.. 2021. 7. 20.
BOJ 1991 - 트리 순회(tree) https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net - inorder, preorder, postorder 각각 왼루오, 루왼오, 왼오루 로 순회순서를 외운다 - 노드 자료값이 대문자 알파벳이므로 'A'를 빼서 노드벡터의 배열의 인덱스로 치환하면 치환하면 노드를 더 간단하게 구현할 수 있다. #include #include using namespace std; struct Node { char left, right; }; vector tree.. 2021. 7. 19.
boj 21610 - 마법사 상어와 비바라기(구현, 좌표문제) https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net - 구현 중에 구름의 좌표 이동 때문에 골치아파서 오래걸림. 특정 좌표의 행,열 (r,c)를 알고 있을 때 이동한 좌표를 (nr, nc)라고 정의한다. 좌표 범위가 0~n-1이라 정의했을 때 nr = ((r + 방향 * 이동거리) % n + n) % n 으로 정의하였다. - 좌표가 정방향으로 N-1을 넘어갔을 때 %n을 나눠주고, 역방향으로 0을 넘어갔을 때 %n으로 나눠준 뒤 +n을 해서.. 2021. 7. 17.
boj 19237 - 어른 상어(구현) https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net - 항상 이런 문제가 나오면 행,열에 대한 개념이 햇깔린다. - 문제에서 주어진 순서대로 구현하면 된다. board에는 상어id, 냄새id, 냄새남은시간(k-a)를 저장한다. shark 구조체에 좌표와 방향, 우선순위를 저장하고, 비어있는 shark배열을 선언해준다. - 1. 전체 냄새가 1씩 감소하고 2. 1~m의 상어가 주어진 방향별 우선순위대로 움.. 2021. 7. 8.