본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 17127번 : 벚꽃이 정보섬에 피어난 이유 무조건 연속된 나무들만 한 집합에 속해 있으므로 집합도 연속되게 위치해 있다고 봅니다. 집합 i,j,k,f가 있고 각 집합안의 원소의 곱들을 구하고 각각의 집합에 그 결과값을 더했습니다. 그 최솟값이 답입니다. #include #include using namespace std; int a, n,ans; int main() { cin >> n; int *group = new int[n+1]; for (int i = 1; i > group[i]; } for (int r = n-3; r >=1; r--) { int itmp = 1; for (int i = 1; i
(C++) - 백준(BOJ) 17073번 : 나무 위의 빗물 물이 멈추는 구간은 leaf일 때 뿐이므로 입력 시 leaf만 세준다. 그 후 소수점 10자리 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include #include #include #include using namespace std; int u, v, n; double cnt,w; int a[500001]; //1번노드에 들어가 있는 물의 양 int main() { cin >> n >> w; for(int i = 1 ; i> u >> v; a[u]++; a[v]++; } for (int i = 2; i
(C++) - 백준(BOJ) 17072번 : 아스키 아트 https://www.acmicpc.net/problem/17072 17072번: 아스키 아트 위와 같이, 아스키 문자로 그린 그림을 ‘아스키 아트’ 라고 한다. 우리가 알고 있는 일반적인 그림 파일(.jpg, .png 등)들은 기본적으로 해상도에 맞게 픽셀 단위로 분할된 2차원 그리드에 대해 각 픽셀의 정보를 담는 방식으로 저장된다. 이 정보에는 여러 가지가 있으나, 그중 ‘R’, ‘G’, ‘B’ 값은 ‘Red’, ‘Green’, ‘Blue’의 3색이 각각 어느 정도 섞여 있는지를 나타내 주는 지표이며, 각 값은 0 이상 255 이하의 범위에 있 www.acmicpc.net 단순한 입출력문제였습니다. Code #include int Intensity_function(int R,int G,int B) {..
(C++) - 백준(BOJ) 17141번 : 연구소 2 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109#include #include #include #include #include #define MAX 987654321using namespace std;//nXn개의 정사각형 중 m개의 바이러스를 방이 2인 곳에 떨군다. 조합 문제!! (2의 개수) C m 꼴int ck[51][51];int lab[51][51];in..
(C++) - 백준(BOJ) 17141번 : 연구소 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107#include #include #include #include #include using namespace std;//벽은 3개 세울 수 있음//벽을 모든 빈칸에 3개 세워보고 안전영역 최대 크기 출력 int lab[9][9];int cop[9][9]; //연구소의 카피int ck[9][9];bool visited[8 * 8];..
(C++) - 백준(BOJ) 9613번 : GCD합 배열 안에 있는 요소들 중 한 쌍이 나오는 모든 조합들의 GCD를 구해서 다 합친게 답입니다. GCD는 유클리드 호제법으로 뚝딱 구할 수 있습니다. 뚝~딱! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include #include using namespace std; int GCD(int a, int b) { if (!b) return a; GCD(b, a%b); } int main() { int t; long long a[101]; cin >> t; while (t--) { int n; long long sum = 0; memset(a, 0, sizeof(a)); cin >> n; for (int i = 1; i >..
(C++) - 백준(BOJ) 2231번 : 분해합 1234567891011121314151617181920212223242526272829303132333435363738//생성자의 각 자리수 + 생성자(M) = 분해합(N)//생성자의 각 자리수를 계속 분해합에 빼고 1씩 더한다.#include #include #include #include using namespace std;string int2str(int n){ stringstream ss; // create a stringstream ss n; int Nnum = stoi(n);//분해합 for(int i = 0; i
(C++) - 백준(BOJ) 10986번 : 나머지 합 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include #include using namespace std; //a[i]+....+a[j] = sum[j] - sum[i-1]//(a[i]+....+a[j])%M = (sum[j] - sum[i-1])%M//s[i]%m = s[j]%m인 부분을 찾으면 된다.//cnt[k] => (s[i]%m == k) 인 i의 개수//cnt[i] * (cnt[i]-1) / 2의 합이 쌍의 개수이다 int main() { long long n; long long m; long long ans = 0; cin >> n >> m; long l..