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

 

이번에 볼 문제는 백준 1408번 문제인 24이다.
문제는 아래 링크를 확인하자.

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

 

1408번: 24

도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는

www.acmicpc.net

이 문제에서는 첫 번째 주어진 시각에서 두 번째 주어진 시각까지 걸리는 (가장 빠른) 시간을 계산하는 문제이다.

입력 형식이 문자열의 형태로 주어져있으므로 substr 등으로 적절히 읽어 문제를 해결하자.

 

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

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

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

	string s1, s2; cin >> s1 >> s2;
	int time1 = stoi(s1.substr(0, 2)) * 3600 + stoi(s1.substr(3, 2)) * 60 + stoi(s1.substr(6, 2));
	int time2 = stoi(s2.substr(0, 2)) * 3600 + stoi(s2.substr(3, 2)) * 60 + stoi(s2.substr(6, 2));
	int ans = time2 - time1;
	if (ans < 0) ans += 86400;
	int HH = ans / 3600; ans %= 3600;
	int MM = ans / 60; ans %= 60;
	int SS = ans;
	if (HH < 10) cout << 0; cout << HH << ":";
	if (MM < 10) cout << 0; cout << MM << ":";
	if (SS < 10) cout << 0; cout << SS;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 11098 // C++] 첼시를 도와줘!  (0) 2021.06.01
[BOJ 14624 // C++] 전북대학교  (0) 2021.06.01
[BOJ 5635 // C++] 생일  (0) 2021.06.01
[BOJ 2711 // C++] 오타맨 고창영  (0) 2021.06.01
[BOJ 4999 // C++] 아!  (0) 2021.06.01

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

 

이번에 볼 문제는 백준 5635번 문제인 생일이다.
문제는 아래 링크를 확인하자.

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

 

5635번: 생일

어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.

www.acmicpc.net

생일을 yyyymmdd의 꼴로 나타내면, 나이가 가장 많은 사람은 yyyymmdd가 가장 작을 것이고, 나이가 가장 적은 사람은 yyyymmdd가 가장 클 것이다.

 

나이가 가장 많은 사람과 적은 사람만 구하면 되므로, 매번 입력을 받을 때마다 받은 정보를 yyyymmdd꼴의 문자열로 바꾸고 비교를 통해 사람을 갱신해주는 것으로 문제를 풀 수 있다.

 

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

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

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

	int N; cin >> N;
	string oldest = "99999999", youngest = "00000000", youngestname, oldestname;
	while (N--) {
		string s, dd, mm, yyyy; cin >> s >> dd >> mm >> yyyy;
		string birthday = yyyy;
		if (mm.size() == 1) birthday += "0"; birthday += mm;
		if (dd.size() == 1) birthday += "0"; birthday += dd;
		if (birthday < oldest) oldest = birthday, oldestname = s;
		if (birthday > youngest) youngest = birthday, youngestname = s;
	}
	cout << youngestname << '\n' << oldestname;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 14624 // C++] 전북대학교  (0) 2021.06.01
[BOJ 1408 // C++] 24  (0) 2021.06.01
[BOJ 2711 // C++] 오타맨 고창영  (0) 2021.06.01
[BOJ 4999 // C++] 아!  (0) 2021.06.01
[BOJ 5576 // C++] 콘테스트  (0) 2021.06.01

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

 

이번에 볼 문제는 백준 2711번 문제인 오타맨 고창영이다.
문제는 아래 링크를 확인하자.

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

 

2711번: 오타맨 고창영

첫째 줄에 테스트 케이스의 개수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 한 줄로 구성되어 있다. 첫 숫자는 창영이가 오타를 낸 위치이고, 두 번째 문자열은 창영이가 친 문자열이다. 문자

www.acmicpc.net

문제에서 주어진 연산은 string의 erase를 이용하여 문제를 간단히 해결할 수 있다.

 

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

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

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

	int T; cin >> T;
	while (T--) {
		int N;  string s; cin >> N >> s;
		s.erase(N - 1,1);
		cout << s << '\n';
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 1408 // C++] 24  (0) 2021.06.01
[BOJ 5635 // C++] 생일  (0) 2021.06.01
[BOJ 4999 // C++] 아!  (0) 2021.06.01
[BOJ 5576 // C++] 콘테스트  (0) 2021.06.01
[BOJ 1001 // C++] A-B  (0) 2021.06.01

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

 

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

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

 

4999번: 아!

입력은 두 줄로 이루어져 있다. 첫째 줄은 재환이가 가장 길게 낼 수 있는 "aaah"이다. 둘째 줄은 의사가 듣기를 원하는 "aah"이다. 두 문자열은 모두 a와 h로만 이루어져 있다. a의 개수는 0보다 크거

www.acmicpc.net

주어진 형태의 문자열만 주어지므로, 단순히 문자열의 길이만을 비교해도 문제를 해결할 수 있다.

 

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

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

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

	string s1, s2; cin >> s1 >> s2;
	if (s1.length() >= s2.length()) cout << "go";
	else cout << "no";
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 5635 // C++] 생일  (0) 2021.06.01
[BOJ 2711 // C++] 오타맨 고창영  (0) 2021.06.01
[BOJ 5576 // C++] 콘테스트  (0) 2021.06.01
[BOJ 1001 // C++] A-B  (0) 2021.06.01
[BOJ 10804 // C++] 카드 역배치  (0) 2021.06.01

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

 

이번에 볼 문제는 백준 5576번 문제인 콘테스트이다.
문제는 아래 링크를 확인하자.

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

 

5576번: 콘테스트

최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다. 이번이 두 대

www.acmicpc.net

문제에서 주어진 대로, 10개의 점수를 입력받아 정렬을 한 뒤 가장 큰 3개의 점수를 합하여 출력하는 것을 두번 반복하면 이 문제를 해결할 수 있다.

 

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

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

int arr[10];

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

	int T = 2;
	while (T--) {
		for (int i = 0; i < 10; i++) {
			cin >> arr[i];
		}
		sort(arr, arr + 10);
		cout << arr[7] + arr[8] + arr[9] << ' ';
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 2711 // C++] 오타맨 고창영  (0) 2021.06.01
[BOJ 4999 // C++] 아!  (0) 2021.06.01
[BOJ 1001 // C++] A-B  (0) 2021.06.01
[BOJ 10804 // C++] 카드 역배치  (0) 2021.06.01
[BOJ 10984 // C++] 내 학점을 구해줘  (0) 2021.06.01

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

 

이번에 볼 문제는 백준 1001번 문제인 A-B이다.
문제는 아래 링크를 확인하자.

www.acmicpc.net/problem/1001

 

1001번: A-B

두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

이 문제는 한자리수 A와 B를 입력받아 A-B의 값을 출력하는 문제이다.

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

#include <iostream>
using namespace std;

int main() {
	int A, B; cin >> A >> B;
	cout << A - B;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 4999 // C++] 아!  (0) 2021.06.01
[BOJ 5576 // C++] 콘테스트  (0) 2021.06.01
[BOJ 10804 // C++] 카드 역배치  (0) 2021.06.01
[BOJ 10984 // C++] 내 학점을 구해줘  (0) 2021.06.01
[BOJ 10834 // C++] 벨트  (0) 2021.06.01

+ Recent posts