여사건을 이용해 풀었는데,,코드는 별로 좋지는 않은 것 같다는 느낌적인 느낌,,

사실 옛날에 그냥 7명 합 구하는 방식으로 풀다가 포기했었는데, 역시 안풀릴땐 시간을 두고 다른 방향으로 생각해보는 습관을 가져야할 듯 싶다^_^!

 

#include <iostream>
using namespace std;

int dwarf[9];
int real_dwarf[7];
int main() {
    int i, j, k, nine_sum = 0, sum = 0, tmp = 0;

    for (i = 0; i < 9; i++) {
        scanf_s("%d", &dwarf[i]);
        nine_sum += dwarf[i];
    }

    for (i = 0; i < 8; i++) {
        for (j = i + 1; j < 9; j++) {
            sum = nine_sum - dwarf[i] - dwarf[j];
            if (sum == 100) {
                 for (k = 0; k < 9; k++) {
                      if (k != i && k != j) {
                           real_dwarf[tmp] = dwarf[k];
                           tmp++;
                      }
                 }
                 break;
            }
        }
    }
     
    for (i = 0; i < 6; i++) {
        for (j = i + 1; j < 7; j++) {
            if (real_dwarf[i] > real_dwarf[j]){
                tmp = real_dwarf[i];
                real_dwarf[i] = real_dwarf[j];
                real_dwarf[j] = tmp;
            }
       }
   }
   for (j = 0; j < 7; j++) {
        cout << real_dwarf[j] <<endl;
    }
}

'자윤이와고리즘 > Code' 카테고리의 다른 글

[백준] 10819 | 차이를 최대로  (0) 2019.05.14
[백준] 1476 | 날짜계산  (0) 2019.05.09
[백준] 6588 | 골드바흐의 추측  (0) 2019.05.08
[백준] 1929 | 소수구하기  (0) 2019.05.08
[백준] 1978 | 소수 찾기  (0) 2019.05.08

이 문제도 시간초과가 나서 당황스러웠던 문제,,,,, 답은 제대로 나오는데 어떻게 풀어야할까 고민하다가,,

검색을 해보니 cin, cout과 printf, scanf의 속도차이가 크다고 해서 일단 cin만 scanf로 수정을 해주었더니 바로 맞았습니다, 가 떴다.

 

속도를 위해선 scanf와 printf를 써야함을 잊지 말자!

#include <iostream>
using namespace std;
bool check[1000001];

int main() {
    int num, i, j, tmp, flag = 0;

    check[0] = check[1] = true;

    for (i = 2; i < 1000001; i++) {
        if (check[i] == false) {
            for (j = i * 2; j < 1000001; j += i)
                check[j] = true;
        }
    }

    scanf("%d", &num);
    while (num != 0) {
         for (i = 3; i < num/2 + 1; i++) {
             if (check[i] == false) {
                  tmp = num - i;
                  if (tmp>0 && check[tmp] == false) {
                       cout << num << " = " << i << " + " << tmp << '\n';
                       flag = 1;
                       break;
                  }
            }
        }
        if (flag == 0)
             cout << "Goldbach's conjecture is wrong.\n";
        scanf("%d", &num);
    }

}

'자윤이와고리즘 > Code' 카테고리의 다른 글

[백준] 1476 | 날짜계산  (0) 2019.05.09
[백준] 2309 | 일곱 난쟁이  (0) 2019.05.09
[백준] 1929 | 소수구하기  (0) 2019.05.08
[백준] 1978 | 소수 찾기  (0) 2019.05.08
[백준] 9613 | GCD합  (0) 2019.05.08

원래 check를 int배열로 만들었는데, 계속 시간 초과가 나서,,

bool로 바꿔주었더니 아주 빠르게 되었다...

 

#include <iostream>
using namespace std;


bool check[1000001];
int main() {

    int i, j, M, N;
    check[0] = check[1] = true;

    for (i = 2; i < 1000001; i++) {
    if (check[i]==false) {
        for (j = i * 2; j < 1000001; j += i)
            check[j] = true;
        }
    }

    cin >> M >> N;
    for (i = M; i < N+1; i++) {
        if (check[i] == false)
             cout << i << '\n';
    }
}

'자윤이와고리즘 > Code' 카테고리의 다른 글

[백준] 2309 | 일곱 난쟁이  (0) 2019.05.09
[백준] 6588 | 골드바흐의 추측  (0) 2019.05.08
[백준] 1978 | 소수 찾기  (0) 2019.05.08
[백준] 9613 | GCD합  (0) 2019.05.08
[백준]1934|최소공배수  (0) 2019.05.07

아 내 논리로는 정말 무조건 맞는데 왜 틀렸는지를 한참 고민한 문제다....

역시나 이번에도 문제를 제대로 읽지 않아서 틀렸다......

바로 어제, 문제를 제대로 읽자고 다짐했는데 오늘도 그래서 틀리다니,,흑흑

 

자꾸 틀렸습니다, 가 나와서 고민했는데,,그 이유는 범위가 1000까지 인데 나는 100까지로 줘서 그렇다....

문제를 제대로 읽자 제발!!

 

#include  <iostream>
using namespace std;

int check[1001] = { 0 };
int main() {
    int tmp, total, i, k, prime_cnt = 0, prime;
    long long j;

    check[1] = 1;

    for (i = 2; i < 1001; i++) {
        if (!check[i]) {

            for (j = i * 2; j < 1001; j +=i) 
                check[j] = 1;

        }
    }

    cin >> total;

    for (i = 0; i < total; i++) {
        cin >> tmp;
        if (!check[tmp])
            prime_cnt++;
    }
    cout << prime_cnt << endl;
}

'자윤이와고리즘 > Code' 카테고리의 다른 글

[백준] 6588 | 골드바흐의 추측  (0) 2019.05.08
[백준] 1929 | 소수구하기  (0) 2019.05.08
[백준] 9613 | GCD합  (0) 2019.05.08
[백준]1934|최소공배수  (0) 2019.05.07
[백준]2609|최대공약수와최소공배수  (0) 2019.05.07

+ Recent posts