어이없는 실수를 해서 별 조건들을 다 달은 문제,,,

무슨 실수를 했냐면 부등호가 들어갈 자리에 오타가 나서 ,를 집어 넣었다..

visual에서는 되서 오타가 있으리라는 생각을 못했는데 백준에서는 계속 출력초과가 떠서 이게 뭔지 한참을 고민했었다...

#include <iostream>
using namespace std;
int output[1000] = { 0 };

int GCD(int a, int b) {
    if (b == 0)
        return a;
    while (b != 0)
        return GCD(b, a%b);
}
int main() {
    int lines, A, B, i, lcm, gcd;

    cin >> lines;
    for (i = 0; i< lines; i++) {
        cin >> A >> B;
        if (A >= 1 && B <= 45000) {
            gcd = GCD(A, B);
            lcm = A*B / gcd;
            output[i] = lcm;
        }
    }
    for (i = 0; i< lines; i++) {
        cout << output[i] << endl;
    }
}

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

[백준] 1978 | 소수 찾기  (0) 2019.05.08
[백준] 9613 | GCD합  (0) 2019.05.08
[백준]2609|최대공약수와최소공배수  (0) 2019.05.07
[백준]9012|괄호  (0) 2019.03.23
[백준]9372|상근이의여행  (0) 2019.03.22

#include <iostream>

using namespace std;

 

int GCD(int a, int b) {
    if (b == 0)
        return a;
    while (b != 0)
        return GCD(b, a%b);
}
int main() {
    int A, B, result;

    cin >> A >> B;
    result = GCD(A, B);
    cout << result << endl;  //최대공약수
    cout << A * B / result; // 최소공배수
}

 

시간 복잡도 개선을 위해 for문이 아닌 재귀함수 이용!

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

[백준] 9613 | GCD합  (0) 2019.05.08
[백준]1934|최소공배수  (0) 2019.05.07
[백준]9012|괄호  (0) 2019.03.23
[백준]9372|상근이의여행  (0) 2019.03.22
[백준]7576번|토마토  (0) 2019.03.22

너무 맘이 급해 잘 모르는데 억지로 하는거 같아 차근차근 해보려고 한다,,^^

스택사용을 위해 푸는 문제인데 아무 생각 없이 변수 더하고 빼는 방식으로 했다가 고쳤다...

더 열심히 해서 얼른 익숙해지면 좋겠다.

#include <iostream>

#include <stack>

#include <string.h>

using namespace std;

char ch[50] = { 0 };

int VPS() {

stack<char>s;

for (int j = 0; j < (int)strlen(ch); j++) {

if (ch[j] == '(') {

s.push(ch[j]);

}

else {

if (!s.empty())

s.pop();

else

return 0;

}

}

return s.empty();

}

int main() {

int i, test_case;

cin >> test_case;


for (i = 0; i < test_case; i++) {

cin >> ch;

if (VPS())

cout << "YES" << endl;

else

cout << "NO" << endl;

}

}

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

[백준]1934|최소공배수  (0) 2019.05.07
[백준]2609|최대공약수와최소공배수  (0) 2019.05.07
[백준]9372|상근이의여행  (0) 2019.03.22
[백준]7576번|토마토  (0) 2019.03.22
[백준]1260번|DFS와BFS  (0) 2019.03.22

요즘 BFS를 공부중이라 해당 카테고리에 나와있는 문제를 푼 것인데, 내가 생각했을땐 DFS여야 최단 거리가 나오는거 같아 내 멋대로 바꾸었다..

하지만 이것도,,시간초과가 뜬다...50%정도 채점하다가,,,,,ㅜ

주어진 입력에서는 같은 결과가 나오지만 완전히 맞았는지는 불투명하다..



시간초과 문제가 반복되는걸로 보아 dfs, bfs등에서 시간초과를 해결할 방법을 찾아보아야 겠다ㅜ0ㅜ


#include<iostream>

#include<memory.h>

#include <stack>

using namespace std;

#define MAX_NATION 1000

int nat[MAX_NATION][MAX_NATION];

stack<int>s;

int start = 1, cnt;

int DFS(int total) {

int i, j, tmp;


s.push(start);

int first = start;

while (!s.empty()) {

tmp = s.top();

cnt++;

s.pop();

for (j = 0; j < total; j++) {

if (j > tmp && nat[tmp][j] == 1) {

if (j == first)

return cnt;

s.push(j);

}

}

}

return cnt;

}

int main() {

int test_case, nation, flight, i, j, k, tmp;

int v1, v2;

cin >> test_case;

for (i = 0; i < MAX_NATION; i++)

memset(nat[i], 0, sizeof(nat[i]));

for (i = 0; i < test_case; i++) {

cnt = 0;

cin >> nation >> flight;

for (j = 0; j < flight; j++) {

cin >> v1 >> v2;

nat[v1][v2] = 1;

}

cout << DFS(nation) << endl;

}

}

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

[백준]1934|최소공배수  (0) 2019.05.07
[백준]2609|최대공약수와최소공배수  (0) 2019.05.07
[백준]9012|괄호  (0) 2019.03.23
[백준]7576번|토마토  (0) 2019.03.22
[백준]1260번|DFS와BFS  (0) 2019.03.22

+ Recent posts