짬뽕얼큰하게의 맨땅에 헤딩 :: '알고리즘' 카테고리의 글 목록 (30 Page)

'알고리즘'에 해당되는 글 305건

이 문제는 A만 재배열하라고 했지만, A의 재배열을 통해 B에 대응하는 방법을 생각하면 50! 의 복잡도가 나오게 된다. 


따라서 A B를 정렬하여 A배열의 가장 낮은값과 B배열의 가장 높은값일 곱했다.


B 재배치는 하지말라 하였으나,  A배열의 순서 출력이 아니라 최소 비용의 출력이기때문에 A, B를 재배치하여 최소값을 구하였다.


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
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int A[100];
 
int B[100];
int main(void){
  int N;
  scanf("%d"&N);
  for(int i = 0 ; i < N; i++){
    scanf("%d", A + i);
  }
  for(int i = 0 ; i < N; i++){
    scanf("%d", B + i);
  }
 
  sort(A, A + N);
  sort(B, B + N);
  int sum = 0;
  for(int i = 0; i < N; i++){
    sum += A[i] * B[N - 1 - i];
  }
  printf("%d", sum);
}
 
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 1002 터렛  (0) 2018.11.26
백준(BOJ) 2442 별찍기-5  (0) 2018.11.26
백준(BOJ) 2751 수 정렬하기2  (0) 2018.11.26
백준(BOJ) 2309 일곱 난쟁이  (0) 2018.11.26
백준(BOJ) 2609 최대공약수와 최소공배수  (0) 2018.11.26
블로그 이미지

짬뽕얼큰하게

,

STL 을 사용하지 않고 퀵소트를 구한하였다.


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
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int N;
int arr[1000001];
void _qsort(int l, int r){
  int pivot = arr[(l + r) / 2];
  int i = l;
  int j = r;
  while(i <= j){
    while(arr[i] < pivot) i++;
    while(arr[j] > pivot) j--;
    if(i <= j){
      int t = arr[i];
      arr[i] = arr[j];
      arr[j] = t;
      i++;
      j--;
    }
  }
  if(l < j) _qsort(l, j);
  if(i < r) _qsort(i, r);
 
}
int main(void){
  scanf("%d"&N);
  for(int i = 0 ; i < N; i++){
    scanf("%d", arr + i);
  }
 
  //sort(arr, arr + N);
 
  _qsort(0, N - 1);
  for(int i = 0 ; i < N; i++){
    printf("%d\n", arr[i]);
  }
 
}
 
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 2442 별찍기-5  (0) 2018.11.26
백준(BOJ) 1026 보물  (0) 2018.11.26
백준(BOJ) 2309 일곱 난쟁이  (0) 2018.11.26
백준(BOJ) 2609 최대공약수와 최소공배수  (0) 2018.11.26
백준(BOJ) 10845  (0) 2018.11.26
블로그 이미지

짬뽕얼큰하게

,
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
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int arr[9];
 
bool check(int i,int d, vector<int> list){
  if(d == 7){
    int sum = 0;
    for(int i = 0 ; i < 7; i++){
      sum += list[i];
    }
    if(sum == 100){
      //sort(list.begin(), list.end());
      for(int i = 0 ; i < 7; i++){
        printf("%d\n", list[i]);
      }
      return true;
    }
    return false;
  }
  for(int k = i + 1; k < 9; k++){
    list.push_back(arr[k]);
    if(check(k, d + 1, list)){
      return true;
    }
    list.pop_back();
  }
 
  return false;
}
int main(void){
  for(int i = 0 ; i < 9; i++){
    scanf("%d", arr + i);
  }
  sort(arr, arr + 9);
  vector<int> list;
  check(-10, list);
}
 
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 1026 보물  (0) 2018.11.26
백준(BOJ) 2751 수 정렬하기2  (0) 2018.11.26
백준(BOJ) 2609 최대공약수와 최소공배수  (0) 2018.11.26
백준(BOJ) 10845  (0) 2018.11.26
백준(BOJ) 2908  (0) 2018.11.26
블로그 이미지

짬뽕얼큰하게

,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdio>
int gcd(int a, int b){
  if(b == 0return a;
  gcd(b, a%b);
}
 
int main(void){
  int a, b;
  scanf("%d %d"&a, &b);
  int gc = gcd(a, b);
  printf("%d\n%d", gc, a * b / gc);
 
}
 
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 2751 수 정렬하기2  (0) 2018.11.26
백준(BOJ) 2309 일곱 난쟁이  (0) 2018.11.26
백준(BOJ) 10845  (0) 2018.11.26
백준(BOJ) 2908  (0) 2018.11.26
백준(BOJ) 1157  (0) 2018.11.25
블로그 이미지

짬뽕얼큰하게

,

백준(BOJ) 10845

알고리즘 2018. 11. 26. 10:09

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <cstdio>
#include <queue>
#include <string.h>
using namespace std;
 
queue<int> q;
 
int main(void){
  int N;
  scanf("%d"&N);
  scanf("%*c");
  while(N--){
    char str[20];
    scanf("%s", str);
    if(strcmp(str, "push"== 0){
      int n;
      scanf("%d"&n);
      q.push(n);
      scanf("%*c");
    }
    else if(strcmp(str, "pop"== 0){
        if(q.empty()) printf("-1\n");
        else{
          printf("%d\n", q.front());
          q.pop();
        }
    }
    else if(strcmp(str, "size"== 0){
        printf("%d\n", q.size());
    }
    else if(strcmp(str, "empty"== 0){
        if(q.empty()) printf("1\n");
        else printf("0\n");
    }
    else if(strcmp(str, "front"== 0){
        if(q.empty()) printf("-1\n");
        else printf("%d\n", q.front());
    }
    else if(strcmp(str, "back"== 0){
      if(q.empty()) printf("-1\n");
      else printf("%d\n", q.back());
    }
  }
 
}
 
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 2309 일곱 난쟁이  (0) 2018.11.26
백준(BOJ) 2609 최대공약수와 최소공배수  (0) 2018.11.26
백준(BOJ) 2908  (0) 2018.11.26
백준(BOJ) 1157  (0) 2018.11.25
백준(BOJ) 1932  (0) 2018.11.25
블로그 이미지

짬뽕얼큰하게

,

백준(BOJ) 2908

알고리즘 2018. 11. 26. 09:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstdio>
int main(void){
  int a, b;
  scanf("%d %d"&a, &b);
 
  int c = 0, d = 0;
  while(a){
    c*=10;
    c += a % 10;
    a /= 10;
  }
  while(b){
    d *=10;
    d += b %10;
    b /=10;
  }
  if( c > d) printf("%d", c);
  else printf("%d", d);
 
}
 
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 2609 최대공약수와 최소공배수  (0) 2018.11.26
백준(BOJ) 10845  (0) 2018.11.26
백준(BOJ) 1157  (0) 2018.11.25
백준(BOJ) 1932  (0) 2018.11.25
백준(BOJ) 11726  (0) 2018.11.25
블로그 이미지

짬뽕얼큰하게

,

백준(BOJ) 1157

알고리즘 2018. 11. 25. 23:15
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
#include <iostream>
#include <algorithm>
using namespace std;
int arr[100];
int main(void){
   char c;
   while((c = getchar()) != EOF && c != '\n'){
       if(c >= 'a') c -= 'a' - 'A';
       arr[c]++;
   }
   int result = 0;
   int res;
   bool unique = true;
   for(int i = 'A'; i <= 'Z' ; i++){
        if(result < arr[i]){
            result = arr[i];
            res = i;
            unique = true;
        }
        else if(result == arr[i]){
            unique = false;
        }
   }
   if(unique) printf("%c", res);
   else printf("?");
}
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 10845  (0) 2018.11.26
백준(BOJ) 2908  (0) 2018.11.26
백준(BOJ) 1932  (0) 2018.11.25
백준(BOJ) 11726  (0) 2018.11.25
백준(BOJ) 2920  (0) 2018.11.25
블로그 이미지

짬뽕얼큰하게

,

백준(BOJ) 1932

알고리즘 2018. 11. 25. 22:59
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
#include <iostream>
#include <algorithm>
using namespace std;
int tr[502][502];
int dp[502][502];
int N;
 
int main(void){
    scanf("%d"&N);
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= i; j++) {
            scanf("%d", tr[i] + j);
        }
    }
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= i; j++){
            dp[i][j] = max(dp[i - 1][j - 1], dp[i - 1][j]) + tr[i][j];
        }
    }
    int result = 0;
    for(int i = 1; i <= N; i++){
        result = max(result, dp[N][i]);
    }
    printf("%d", result);
 
}
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 2908  (0) 2018.11.26
백준(BOJ) 1157  (0) 2018.11.25
백준(BOJ) 11726  (0) 2018.11.25
백준(BOJ) 2920  (0) 2018.11.25
백준(BOJ) 2178  (0) 2018.11.25
블로그 이미지

짬뽕얼큰하게

,

백준(BOJ) 11726

알고리즘 2018. 11. 25. 22:45
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
int memo[1001];
int main(void){
    int N;
    memo[1= 1;
    memo[2= 2;
    scanf("%d"&N);
    for(int i = 3; i <= N; i++){
        memo[i] = (memo[i - 1+ memo[i - 2]) % 10007;
    }
    printf("%d", memo[N]);
}
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 1157  (0) 2018.11.25
백준(BOJ) 1932  (0) 2018.11.25
백준(BOJ) 2920  (0) 2018.11.25
백준(BOJ) 2178  (0) 2018.11.25
알고스팟(algospot) JLIS  (0) 2018.11.13
블로그 이미지

짬뽕얼큰하게

,

백준(BOJ) 2920

알고리즘 2018. 11. 25. 22:38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main(void){
    bool as = true;
    bool de = true;
    for(int i = 1; i <= 8; i++){
        int n;
        scanf("%d"&n);
        if(n != i) as = false;
        if(n != 9 - i) de = false;
    }
 
    if(as) printf("ascending");
    else if(de) printf("descending");
    else printf("mixed");
 
}
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 1932  (0) 2018.11.25
백준(BOJ) 11726  (0) 2018.11.25
백준(BOJ) 2178  (0) 2018.11.25
알고스팟(algospot) JLIS  (0) 2018.11.13
백준(BOJ) 11053  (0) 2018.11.13
블로그 이미지

짬뽕얼큰하게

,