본문 바로가기

728x90
반응형

Algorithm/C++

(111)
[C++] 9461 : 파도반 수열 https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net #include using namespace std; long long P[101]; //int로 하면 overflow 일어남 void dp(int n) { //초기값 세팅 P[1] = 1; P[2] = 1; P[3] = 1; P[4] = 2; P[5] = 2; //점화식 : P[n] = P[n-1] + P[n-5] for (int i = 6; i > T; for (int i = 0; i < T; i+..
[C++] 2780 : 비밀번호 https://www.acmicpc.net/problem/2780 2780번: 비밀번호 각각의 Test case에 대해서 조건을 만족하는 비밀번호의 개수를 출력하라. 단, 수가 매우 커질 수 있으므로 비밀번호의 개수를 1,234,567으로 나눈 나머지를 출력하라. www.acmicpc.net #include #include #include using namespace std; int N; int D[1001][10]; int ans; void dp(int n) { //초기값 세팅 for (int i = 0; i T; for (int i = 0; i > N; dp(N); cout
[C++] 1520: 내리막길 https://www.acmicpc.net/problem/1520 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net #include #include #include using namespace std; int T[501][501]; //table 지도 행렬 int D[501][501]; //D[1][1]이 답. 경로의 경우의 수를 담고 있음 int M, N; //세로, 가로 int dp(int m,int n) { //종료 if (m == M && n == N) return 1; if (m < 1 || n < 1 ||..
[C++] 2579 : 계단 오르기 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net #include #include using namespace std; int stairs[301];//계단의 cost int ans[301];//계단의 누적 가중치. ans[n]이 답 void dp(int n) { //배열 초기값 설정 ans[1] = stairs[1]; ans[2] = stairs[1] + stairs[2]; ans[3] = max(stairs[1] + stairs[3], stairs[2] ..
[C++] 1004 : 어린 왕자 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net #include using namespace std; int main(void) { int T;//Testcase int x1, y1, x2, y2;//시작점, 끝점의 좌표 int n; int cx, cy, r;//n개의 원 int count;//카운팅 cin >> T; for (int i = 0; i > x1 >> ..
[C++] 2150 : Strongly Connected Component https://www.acmicpc.net/problem/2150 2150번: Strongly Connected Component 첫째 줄에 두 정수 V(1 ≤ V ≤ 10,000), E(1 ≤ E ≤ 100,000)가 주어진다. 이는 그래프가 V개의 정점과 E개의 간선으로 이루어져 있다는 의미이다. 다음 E개의 줄에는 간선에 대한 정보를 나타내는 두 정 www.acmicpc.net #include #include #include #include using namespace std; int V, E; //(정점 개수),(간선/규칙 개수) int id,d[10001]; //(고유번호),(부모 번호) bool finished[10001]; //(썼는지 체크용) vector node[10001]; //인접노드..
[C++] 9466 : 텀 프로젝트 https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net #include #include //memset을 쓰기 위함 using namespace std; int n, ans; //(정점 개수),(출력할 답) int node[100001], state[100001]; //(node 관계),(진입 차수) bool result[100001]; //(각 index별 카운팅 했는지 결과) void dfs(int i) { result[i] = true; //카운팅 a..
[C++] 1005 : ACM Craft https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net #include #include #include #include //memset을 쓰기 위함 using namespace std; int N, K, D[1001], state[1001], result[1001]; //(건물 개수),(규칙 개수),(건물 건설에 걸리는 시간),(건물 진입 차수),(결과 값) vector v[1001]; //인접 노드 정보 void topologySort() { ..

728x90
반응형