목록백준 (170)
피너클의 it공부방
https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net 유니온 파인드 문제다. int n, m; int parent[1000001]; 사용할 변수다. parent[5] = 10이라면 5의 조상이 10이라는 의미다. parent[i] = j이라면 i의 조상이 j이라는 의미다. int find(int u) { if (u == parent[u]) return u; return parent[u] = find(paren..

https://www.acmicpc.net/problem/1028 1028번: 다이아몬드 광산 첫째 줄에 R과 C가 주어진다. R과 C는 750보다 작거나 같은 자연수이다. 둘째 줄부터 R개의 줄에는 다이아몬드 광산의 모양이 주어진다. www.acmicpc.net 완전탐색과 다이나믹을 응용해 풀었다. int r, c; string map[751]; int up_left[751][751]; int up_right[751][751]; int down_left[751][751]; int down_right[751][751]; 사용할 변수다. up_left는 왼쪽 위로 1이 얼마나 있는지다. 위의 그래프에서 up_left[3][3] = 2다. 그 외 up_right나 down_left도 이름과 맞는 의미를 같는..
https://www.acmicpc.net/problem/2522 2522번: 별 찍기 - 12 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 구현문제다. #include using namespace std; int n; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1; i

https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net 구현문제다. 왼쪽이 유클리드 기하학에서의 원의 넓이, 오른쪽이 택시 기하학에서의 원의 넓이다. #include using namespace std; const double PI = 3.1415926535897932; int r; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> r; cout
https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 구현문제다. #include using namespace std; int n; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for (int i = n-1; i >= 1; i--) { for (int j = 0; j < i; j++) cout
https://www.acmicpc.net/problem/2445 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 구현문제다. #include using namespace std; int n; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) cout
https://www.acmicpc.net/problem/2443 2443번: 별 찍기 - 6 첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 단순 구현문제다. #include using namespace std; int n; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) cout

https://www.acmicpc.net/problem/1516 1516번: 게임 개발 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부 www.acmicpc.net 다이나믹 문제다. int n; int cost[501]; int cache[501]; vector v[501]; 사용할 변수다. cost[i]는 i건물을 지을때 드는 시간이다. cache[i]는 i건물을 짓을때 드는 모든 건물의 시간이다. i건물을 짓기위해 1번 건물도 지어야 한다면 1번건물 짓는 시간 + i건물 짓는 시간 이렇게 들어간다. v[i] = [1, 2, 3]이라면 i건물을 ..
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 다이나믹을 이용했다. 그냥 피보나치 수열을 구하는것처럼 하면 된다. 3년전에 푼거여서 그런지 지금과는 스타일이 다르다. int t; int a[10000]; long long dp_i[41]; long long dp_j[41]; 사용할 변수들이다. t는 테스트케이스이고 a에는 테스트케이스에 입력하는 값들이 들어간다. dp_i에는 0이 호출되는 횟수, dp_j에는 1이 호출되는 횟수가 들어간다. cin >> t; dp_i[0] = 1, dp_j[0] = 0; dp_i[1] = 0, dp_j[1]..
https://www.acmicpc.net/problem/1090 1090번: 체커 N개의 체커가 엄청 큰 보드 위에 있다. i번 체커는 (xi, yi)에 있다. 같은 칸에 여러 체커가 있을 수도 있다. 체커를 한 번 움직이는 것은 그 체커를 위, 왼쪽, 오른쪽, 아래 중의 한 방향으로 한 칸 www.acmicpc.net 완전탐색을 이용했다. n = 5라면 처음에는 체커 1개가 같은 칸에 모이도록 체커를 움직이는 횟수 두번째에는 체커 2개가 같은 칸에 모이도록 체커를 움직이는 횟수 이런식으로 출력하면 된다. 처음에는 문제를 이해 못해서 헤맸다. int n; vector v; vector coord; 사용할 변수다. coord에는 체커끼리 만나는 좌표가 들어간다. cin >> n; for (int i = ..