이 문제의 경우 잘못 이해해서 처음에 헤매었다..

오늘의 교훈: 문제를 차분히 읽고 구상해본 다음 작성하기!

 

왜냐하면 예시로 주어진 것만 보다가 엔터 치면 입력 종료하는 거라고 받아들여서 완전 이상하게 짜고 있었기 때문이다..

아스키 코드 이용해서 하는 건줄알고 그렇게 해봤는데 안되길래 찾아봤더니 cin/scanf의 경우 엔터를 쳤다고 해도 입력의 종료라는 의미 보다는 입력의 대기의미로 받아들이기 때문이라고 한다...

 

아무튼 문제를 잘 이해하고 난 후 다시 잘 풀었는데, 또 한 번의 문제가 발생했다.

틀렸습니다, 가 나와서 당황스러웠는데,

이 경우는 sum이 자료형이 처음엔 int로 되어 있던 것이 문제가 되었다. long long으로 수정한 뒤 해결하였다.

 

#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 lines, i, n, j, k;
    long long gcd_sum;

    cin >> lines;
    for (i = 0; i < lines; i++) {
        int testcase[100] = { 0 };
        gcd_sum = 0;
        cin >> n;
        for(j =0; j < n; j++) {
            cin >> testcase[j];
        }
        for (j = 0; j <n-1; j++) {
            for ( k = j + 1; k <n; k++) {
                gcd_sum += GCD(testcase[j], testcase[k]);
            }
        }
        cout << gcd_sum << endl;
    }
}

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

[백준] 1929 | 소수구하기  (0) 2019.05.08
[백준] 1978 | 소수 찾기  (0) 2019.05.08
[백준]1934|최소공배수  (0) 2019.05.07
[백준]2609|최대공약수와최소공배수  (0) 2019.05.07
[백준]9012|괄호  (0) 2019.03.23

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

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

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

+ Recent posts