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

 

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

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

 

10998번: A×B

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

www.acmicpc.net

이 문제는 두 한자리 자연수 A와 B를 입력받아, 둘을 곱한 값을 출력하는 문제이다.

 

그대로 구현해주자.

 

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

#include <iostream>
using namespace std;

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

'BOJ' 카테고리의 다른 글

[BOJ 2438 // C++] 별 찍기 - 1  (0) 2021.05.01
[BOJ 10172 // C++] 개  (0) 2021.05.01
[BOJ 5717 // C++] 상근이와 친구들  (0) 2021.05.01
[BOJ 1157 // C++] 단어 공부  (0) 2021.05.01
[BOJ 1244 // C++] 스위치 켜고 끄기  (0) 2021.05.01

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

 

이번에 볼 문제는 백준 5717번 문제인 상근이와 친구들이다.
문제는 아래 링크를 확인하자.

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

 

5717번: 상근이의 친구들

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 두 정수 M과 F로 이루어져 있으며, 각각은 상근이의 남자 친구의 수와 여자 친구의 수이다. (1 ≤ M, F ≤ 5) 입력의 마지막

www.acmicpc.net

0 0 이 입력으로 들어오기 전까지 둘을 합해 출력하는 문제이다.

 

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

#include <iostream>
using namespace std;

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

	int x, y; cin >> x >> y;
	while (x != 0 || y != 0) {
		cout << x + y << '\n';
		cin >> x >> y;
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 10172 // C++] 개  (0) 2021.05.01
[BOJ 10998 // C++] A×B  (0) 2021.05.01
[BOJ 1157 // C++] 단어 공부  (0) 2021.05.01
[BOJ 1244 // C++] 스위치 켜고 끄기  (0) 2021.05.01
[BOJ 2475 // C++] 검증수  (0) 2021.05.01

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

 

이번에 볼 문제는 백준 1157번 문제인 단어 공부이다.
문제는 아래 링크를 확인하자.

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

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

이 문제에서는 주어지는 각 단어에서 가장 많이 사용된 알파벳이 무엇인지를 찾아내야한다.

 

대소문자 구별을 안 하고 결국 출력할 문자가 대문자이므로, 계산을 할 때 toupper을 이용하여 대문자 기준으로 계산을 해주자.

 

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

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

int arr[128];

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

	string s; cin >> s;
	int slen = (int)s.length();

	for (int i = 0; i < slen; i++) {
		arr[toupper(s[i])]++;
	}

	char ans;
	int mxcnt = 0;

	for (int i = 0; i < 128; i++) {
		if (arr[i] < mxcnt) continue;
		if (arr[i] == mxcnt) {
			ans = '?'; continue;
		}
		ans = i;
		mxcnt = arr[i];
	}

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 10998 // C++] A×B  (0) 2021.05.01
[BOJ 5717 // C++] 상근이와 친구들  (0) 2021.05.01
[BOJ 1244 // C++] 스위치 켜고 끄기  (0) 2021.05.01
[BOJ 2475 // C++] 검증수  (0) 2021.05.01
[BOJ 1236 // C++] 성 지키기  (0) 2021.05.01

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

 

이번에 볼 문제는 백준 1244번 문제인 스위치 켜고 끄기이다.
문제는 아래 링크를 확인하자.

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

 

1244번: 스위치 켜고 끄기

첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩

www.acmicpc.net

문제에서 주어진 것을 그대로 시뮬레이션하면 풀리는 문제이다. 그대로 구현하자.

0^1 = 1, 1^0 = 0이므로 xor 연산을 이용하면 간단하게 구현할 수 있다.

 

여학생의 조건을 구현할 때, 배열을 벗어나면 안 된다는 점을 신경쓰는 것이 좋다.

글쓴이는 배열의 양 끝에 -1과 999라는 있을 수 없는 값을 넣어 비교값이 거짓이 나오게 하였다.

 

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

#include <iostream>
using namespace std;

int arr[102];

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

	int N; cin >> N;
	for (int i = 1; i <= N; i++) {
		cin >> arr[i];
	}
	
	arr[0] = -1, arr[N + 1] = 999;

	int Q; cin >> Q;
	while (Q--) {
		int x, k; cin >> x >> k;
		if (x == 1) {
			for (int i = k; i <= N; i += k) {
				arr[i] ^= 1;
			}
		}
		else {
			int dist = 1;
			arr[k] ^= 1;
			while (arr[k - dist] == arr[k + dist]) {
				arr[k - dist] ^= 1;
				arr[k + dist] ^= 1;
				dist++;
			}
		}
	}
	for (int i = 1; i <= N; i++) {
		cout << arr[i] << ' ';
		if (i % 20 == 0) cout << '\n';
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 5717 // C++] 상근이와 친구들  (0) 2021.05.01
[BOJ 1157 // C++] 단어 공부  (0) 2021.05.01
[BOJ 2475 // C++] 검증수  (0) 2021.05.01
[BOJ 1236 // C++] 성 지키기  (0) 2021.05.01
[BOJ 1919 // C++] 애너그램 만들기  (0) 2021.05.01

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

 

이번에 볼 문제는 백준 2475번 문제인 검증수이다.
문제는 아래 링크를 확인하자.

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

 

2475번: 검증수

컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들

www.acmicpc.net

이 문제는 설명에서 주어진 대로 주어지는 5개의 한자리수를 각각 제곱해서 더한 후 10으로 나눈 나머지를 계산하여 출력하는 문제이다. 주어진 대로 잘 구현해보자.

반복문을 사용하지 않더라도, 확인해야 하는 숫자가 총 5자리이므로 직접 코드를 다섯 번 써도 상관없다.

 

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

#include <iostream>
using namespace std;

int main() {
	int ans = 0;
	for (int i = 0; i < 5; i++) {
		int x; cin >> x;
		ans += x * x;
	}
	cout << ans % 10;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 1157 // C++] 단어 공부  (0) 2021.05.01
[BOJ 1244 // C++] 스위치 켜고 끄기  (0) 2021.05.01
[BOJ 1236 // C++] 성 지키기  (0) 2021.05.01
[BOJ 1919 // C++] 애너그램 만들기  (0) 2021.05.01
[BOJ 2557 // C++] Hello World  (0) 2021.05.01

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

 

이번에 볼 문제는 백준 1236번 문제인 성 지키기이다.
문제는 아래 링크를 확인하자.

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

 

1236번: 성 지키기

첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다

www.acmicpc.net

모든 가로줄과 모든 세로줄에 경비원이 있어야하므로, 경비원이 없는 가로줄의 수와 경비원이 없는 세로줄의 수 가운데 더 큰 수를 골라 출력해주면 된다.

 

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

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

string castle[50];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int N, M; cin >> N >> M;
	for (int i = 0; i < N; i++) {
		cin >> castle[i];
	}
	int cnt1 = 0;
	for (int i = 0; i < N; i++) {
		bool noguard = 1;
		for (int j = 0; j < M; j++) {
			if (castle[i][j] == 'X') noguard = 0;
		}
		if (noguard) cnt1++;
	}

	int cnt2 = 0;
	for (int j = 0; j < M; j++) {
		bool noguard = 1;
		for (int i = 0; i < N; i++) {
			if (castle[i][j] == 'X') noguard = 0;
		}
		if (noguard) cnt2++;
	}

	cout << max(cnt1, cnt2);
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 1244 // C++] 스위치 켜고 끄기  (0) 2021.05.01
[BOJ 2475 // C++] 검증수  (0) 2021.05.01
[BOJ 1919 // C++] 애너그램 만들기  (0) 2021.05.01
[BOJ 2557 // C++] Hello World  (0) 2021.05.01
[BOJ 9498 // C++] 시험 성적  (0) 2021.05.01

+ Recent posts