※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 33164번 문제인 徒競走 (Footrace)이다.
문제는 아래 링크를 확인하자.

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

 

속력과 이동 시간이 주어질 때 이동 거리의 값을 계산하는 문제이다.

 

이동 거리는 속력과 이동 시간을 곱해 구할 수 있으므로, 주어지는 두 정수의 곱을 출력해 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int A, B;

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

    cin >> A >> B;
    cout << A * B;
}
728x90

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 33164번 문제인 どら焼き (Dorayaki)이다.
문제는 아래 링크를 확인하자.

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

 

각 도라야끼에 대하여 맛을 계산하는 데에는 \(O(1)\)의 연산이 필요하므로 모든 도라야끼의 맛을 하나하나 구하는 것은 \(O(NM)\)의 시간복잡도로 해낼 수 있다. 또한 \(NM\)은 10000 이하이므로 가능한 모든 도라야끼에 대하여 각 도라야끼의 맛을 더하는 것으로도 문제를 충분히 해결할 수 있음을 관찰할 수 있다.

 

위 내용을 반복문 등으로 단순히 구현하여 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int N, M, ans;
int A[100], B[100];

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

    cin >> N >> M;
    for (int i = 0; i < N; i++) cin >> A[i];
    for (int i = 0; i < M; i++) cin >> B[i];

    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            ans += (A[i] + B[j]) * max(A[i], B[j]);
        }
    }

    cout << ans;
}
728x90

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 33163번 문제인 OIJ (OIJ)이다.
문제는 아래 링크를 확인하자.

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

 

주어지는 문자열의 각 'J'는 'O'로, 각 'O'는 'I'로, 각 'I'는 'J'로 바꾸어 출력하는 문제이다.

 

글쓴이는 각 문자마다 해당 문자가 바뀌게 되는 문자를 기록해 둔 배열을 만들어 문제를 해결하였다.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int N;
char A[128];

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

    A['J'] = 'O', A['O'] = 'I', A['I'] = 'J';
    cin >> N;
    while (N--) {
        char c; cin >> c;
        cout << A[c];
    }
}
728x90

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 33162번 문제인 散歩 (Walking)이다.
문제는 아래 링크를 확인하자.

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

 

JOI군은 홀수번째 이동에서는 3미터 앞으로 이동하며 짝수번째 이동에서는 2미터 뒤로 이동함을 관찰하자.

 

따라서 \(X\)까지의 홀수의 개수만큼 3미터 앞으로 이동 및 짝수의 개수만큼 2미터 뒤로 이동했을 때의 출발점으로부터의 변위가 문제의 답이 된다.

 

\(X\)의 제한이 작으므로 그냥 반복문을 통해 이동을 시뮬레이션하는 것으로 답을 구해도 좋다.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int N, A, B;

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

    cin >> N;
    B = N / 2, A = N - B;
    cout << A * 3 - B * 2;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 33164 // C++] どら焼き (Dorayaki)  (0) 2025.01.16
[BOJ 33163 // C++] OIJ (OIJ)  (0) 2025.01.15
[BOJ 33161 // C++] 鉛筆 2 (Pencils 2)  (0) 2025.01.13
[BOJ 33135 // C++] Append and Panic!  (0) 2025.01.10
[BOJ 33134 // C++] Road Network  (0) 2025.01.09

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 33135번 문제인 鉛筆 2 (Pencils 2)이다.
문제는 아래 링크를 확인하자.

 

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

 

\(N\)엔(円)으로 살 수 있는 5엔짜리 연필의 개수는 \(N\)을 5로 나눈 몫과 같다. 이를 구현하여 문제를 해결하자.

 

C++에서 '/' 연산자를 이용하면 정수의 나눗셈의 몫을 구할 수 있다.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int N;

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

	cin >> N;
	cout << N / 5;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 33163 // C++] OIJ (OIJ)  (0) 2025.01.15
[BOJ 33162 // C++] 散歩 (Walking)  (0) 2025.01.14
[BOJ 33135 // C++] Append and Panic!  (0) 2025.01.10
[BOJ 33134 // C++] Road Network  (0) 2025.01.09
[BOJ 32925 // C++] Just Half is Enough  (0) 2025.01.08

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 33135번 문제인 Append and Panic!이다.
문제는 아래 링크를 확인하자.

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

 

새로 추가된 문자의 개수는 기존에 있던 문자열에 있던 문자의 가짓수와 같으며, 새로 추가된 문자는 기존에 있던 문자의 집합과 같으므로 바뀐 문자열에 포함된 문자의 가짓수는 기존에 있던 문자열의 문자의 가짓수와 같다는 점을 관찰하자.

 

따라서 주어진 문자열의 서로 다른 문자의 개수를 세어 문자열의 길이에서 그 값을 빼는 것으로 문제를 해결할 수 있다.

 

표준 라이브러리의 std::string을 이용하여 구현을 편하게 하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

int ans;
string s;
bool visited[128];

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

    cin >> s; ans = s.length();
    for (auto &l:s) {
        if (visited[l]) continue;
        visited[l] = 1, ans--;
    }

    cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 33162 // C++] 散歩 (Walking)  (0) 2025.01.14
[BOJ 33161 // C++] 鉛筆 2 (Pencils 2)  (0) 2025.01.13
[BOJ 33134 // C++] Road Network  (0) 2025.01.09
[BOJ 32925 // C++] Just Half is Enough  (0) 2025.01.08
[BOJ 33085 // C++] Stock Market  (0) 2025.01.07

+ Recent posts