정화 코딩

꾸준히 문제 풀기 - 2월 말 본문

PS

꾸준히 문제 풀기 - 2월 말

jungh150c 2024. 2. 20. 04:23

C++을 시작한 기념으로 새로 파는 꾸준히 문제 풀기 글!! 쉬운 문제들을 C++로 풀어보며 익혀보고자 한다. 

 


 

2/19. Hello World (백준 2557번)

 

https://www.acmicpc.net/problem/2557

 

//C++

#include <iostream>
using namespace std;

int main() {
    cout << "Hello World!";
    return 0;
}

(정답)

 


 

2/19. A+B (백준 1000번)

 

https://www.acmicpc.net/problem/1000

 

//C++

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << a + b << endl;
    return 0;
}

(정답)

 


 

2/20. ??! (백준 10926번)

 

https://www.acmicpc.net/problem/10926

 

//C++

#include <iostream>
using namespace std;

int main() {
    string str;
    cin >> str;
    cout << str << "??!" << endl;
    return 0;
}

(정답)

 


 

2/20. 1998년생인 내가 태국에서는 2541년생?! (백준 18108번)

 

https://www.acmicpc.net/problem/18108

 

//C++

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    cout << n - 543 << endl;
    return 0;
}

(정답)

 


 

2/21. 사분면 고르기 (백준 14681번)

 

https://www.acmicpc.net/problem/14681

 

//C++

#include <iostream>
using namespace std;

int main() {
    int x, y;
    int ans;
    cin >> x >> y;

    if (x > 0)
        if (y > 0)
            ans = 1;
        else
            ans = 4;
    else
        if (y > 0)
            ans = 2;
        else
            ans = 3;

    cout << ans;

    return 0;
}

(정답)

 


 

2/21. 주사위 세개 (백준 2480번)

 

https://www.acmicpc.net/problem/2480

 

//C++

#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    int prize;
    cin >> a >> b >> c;

    if (a == b)
        if (b == c)
            prize = 10000 + a * 1000;
        else
            prize = 1000 + a * 100;
    else
        if (b == c)
            prize = 1000 + b * 100;
        else {
            if (a == c)
                prize = 1000 + a * 100;
            else {
                int max = a;
                if (b > max)
                    max = b;
                if (c > max)
                    max = c;
                prize = max * 100;
            }
        }

    cout << prize;

    return 0;
}

처음에는 a와 b가 다르고 b와 c가 다르면 a b c 모두 다른 경우라고 생각했다. (오답) a와 b가 다르고 b와 c가 다르지만 a와 c는 같은 경우도 있기 때문에 else 안에 else 안에 if문을 한 번 더 넣어주었다. (정답)

 


 

2/23. 순서쌍의 곱의 합 (백준 13900번)

 

https://www.acmicpc.net/problem/13900

 

//C++

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n;
    cin >> n;

    int x;
    long long sum = 0;
    long long ans = 0;

    for (int i = 0; i < n; i++) {
        cin >> x;
        ans += sum * x;
        sum += x;
    }

    cout << ans << '\n';
    
}

처음에는 생각없이 이중 for문으로 풀었더니 당연히 시간 초과... (오답) 구간 합을 이용하면 될 것 같아서 그렇게 풀었더니 맞았다. (정답)

C++의 빠른 입출력!! ios_base::sync_with_stdio(0); cin.tie(0);

이 문제에서 주의할 점!! 수가 int 범위를 넘어갈 수 있으니 long long 써주기.

 

'PS' 카테고리의 다른 글

C++과 친해지기  (0) 2024.05.04
C++과 친해지기  (0) 2024.04.10
꾸준히 문제 풀기 - 1월, 2월  (1) 2024.01.15
꾸준히 문제 풀기 - 9월 4주차  (0) 2023.09.19
꾸준히 문제 풀기 - 9월 3주차  (0) 2023.09.18
Comments