반응형

C++ 263

[백준 / BOJ] C++ 28445 알록달록 앵무새

28445번: 알록달록 앵무새 문제 https://www.acmicpc.net/problem/28445 28445번: 알록달록 앵무새 재현이가 키우는 앵무새 포포와 레몬이는 그동안 새끼들을 참 많이도 낳았다. 그렇게 태어난 앵무새들을 관찰하며 재현이는 앵무새들의 색에 간단한 규칙이 있다는 것을 발견했다. 그것은 바로 www.acmicpc.net 풀이 색 4가지를 입력받고 가능한 조합을 출력하는 문제다. 2중 for문으로 가능한 조합을 출력했다. 중복처리 및 정렬은 set 자료구조를 사용했다. 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); set s; for (int i = 0; i < 4; i++) { ..

Problem Solving/BOJ 2023.08.17

[백준 / BOJ] C++ 28444 HI-ARC=?

28444번: HI-ARC=? 문제 https://www.acmicpc.net/problem/28444 28444번: HI-ARC=? 첫째 줄에 각 문자에 들어갈 값 $H, I, A, R, C$ ($0 \leq H,I,A,R,C \leq 100$, $H,I,A,R,C$는 정수) 가 공백을 사이에 두고 순서대로 주어진다. www.acmicpc.net 풀이 값을 입력받고 식을 구성해서 출력하는 문제다. 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int h, i, a, r, c; cin >> h >> i >> a >> r >> c; cout

Problem Solving/BOJ 2023.08.17

[백준 / BOJ] C++ 28703 Double It

28703번: Double It 문제 https://www.acmicpc.net/problem/28703 28703번: Double It $31$에 $2$를 곱해서 $62$로, $41$에 $2$를 곱해서 $82$로, $51$ 에 $2$를 곱해서 $102$로, $3$에 $2$를 $5$번 곱해서 $96$으로 만들면, $A$의 최댓값 $102$와 최솟값 $62$의 차이가 $40$으로 최소가 됩니다. www.acmicpc.net 풀이 본 대회 때는 삽질만 종일 하다가 결국 못 푼 문제. 에디토리얼 참고해서 풀었다. 배열의 최솟값을 두배로 증가시켜 가며 최댓값과의 차를 최솟값으로 비교하며 업데이트한다. 이를 최솟값이 처음 배열의 최댓값보다 작을 때만 계속해서 반복한다. 최솟값 관리를 우선순위 큐로 하면 된다. 코..

Problem Solving/BOJ 2023.08.15

[백준 / BOJ] C++ 28702 FizzBuzz

28702번: FizzBuzz 문제 https://www.acmicpc.net/problem/28702 28702번: FizzBuzz FizzBuzz 문제는 $i = 1, 2, \cdots$ 에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다. $i$가 $3$의 배수이면서 $5$의 배수이면 “FizzBuzz”를 출력합니다. $i$가 $3$의 배수이지만 $5$ www.acmicpc.net 풀이 대회 도중에는 isdigit 함수가 생각이 안났다.. 문자의 첫번째 글자가 ascii 코드 기준 숫자인지로 문자열 전체가 숫자인지 판단했다. 입력받은 a, b, c 중 반드시 하나는 숫자이기 때문에 각각에 대해 숫자인 경우에 +1, 2, 3을 해서 조건에 맞게 출력했다. 코드 #include us..

Problem Solving/BOJ 2023.08.15

[백준 / BOJ] C++ 28701 세제곱의 합

28701번: 세제곱의 합 문제 https://www.acmicpc.net/problem/28701 28701번: 세제곱의 합 $a$의 제곱은 $a$를 두 번 곱한 수로, $a^2$으로 표현합니다. $a^2 = a \times a$입니다. 또한, $a$의 세제곱은 $a$를 세 번 곱한 수로, $a^3$으로 표현합니다. $a^3 = a \times a \times a$ 입니다. www.acmicpc.net 풀이 주어진 대로 수식을 출력하면 된다. pow 함수는 return value가 double이기 때문에 type 변환을 꼭 해줘야 한다. 혹은 변수에 저장한 다음 출력해야 한다. 코드 #include using namespace std; int main() { ios::sync_with_stdio(0);..

Problem Solving/BOJ 2023.08.15

[백준 / BOJ] C++ 17430 가로등

17430번: 가로등 문제 https://www.acmicpc.net/problem/17430 17430번: 가로등 2차원 공간 위에 가로등이 N개 배치되어 있다. i번째 가로등의 위치는 (xi, yi)이고, 각 좌표는 정수이다. 서로 다른 가로등의 위치가 같은 경우는 없다. 두 가로등 i와 j(i < j)가 있을 때, (xi, yj)와 (xj www.acmicpc.net 풀이 두 전봇대의 x좌표가 같은 경우, y좌표를 바꾸어도 반드시 균형 잡힐 수밖에 없다. 두 전봇대의 x좌표가 다른 경우, x좌표에 대한 y좌표의 집합이 같은 경우에만 균형 잡혀있다고 볼 수 있다. 따라서 집합 비교를 위해 map을 사용해 key를 x좌표로, value를 y좌표의 집합으로 사용했다. (벡터의 배열로 만들었어도 괜찮았을 ..

Problem Solving/BOJ 2023.08.12

[백준 / BOJ] C++ 27965 N결수

27965번: N결수 문제 https://www.acmicpc.net/problem/27965 27965번: N결수 $10$진법 상에서 양의 정수 $1$, $2$, $3$, $\cdots$, $N$을 이어 붙여 만든 수 $\overline{123\cdots N}$을 $N$결수라고 한다. 예를 들어 $12345$는 $5$결수이고, $12345678910111213$은 $13$결수이다. $N$과 정수 $K$가 주어 www.acmicpc.net 풀이 N결수를 만들고 K로 나누기엔 N결수가 너무 큰 수가 되기 때문에 long long의 범위를 벗어나게 된다. 따라서 과정을 쪼개 중간중간에 나머지 연산을 해야한다. N = 5, K = 7인 경우를 예로 들면, 1~5를 차례대로 나열해야한다. 이때 1을 K로 나눈 ..

Problem Solving/BOJ 2023.08.12

[백준 / BOJ] C++ 23322 초콜릿 뺏어 먹기

23322번: 초콜릿 뺏어 먹기 문제 https://www.acmicpc.net/problem/23322 23322번: 초콜릿 뺏어 먹기 연두는 $N$개의 통에 초콜릿을 담아서, 초콜릿의 개수가 오름차순이 되도록 일렬로 배열해 놓는다. 즉, ($1$번째 통의 초콜릿의 개수) $\le$ ($2$번째 통의 초콜릿의 개수) $\le \dots \le$ ($N$번째 통의 www.acmicpc.net 풀이 이 문제에서 예제를 보면, 모든 통의 초콜릿 개수가 초콜릿 수가 가장 적은 통과 같도록 만든다. 입력받는 값 중 K는 사실상 필요없는 값이고, 입력받은 배열을 오름차순으로 정렬하면 0번 index의 값이 최솟값이 된다. 1번부터 N-1번 index까지 값을 순회하며 0번 index의 값(최솟값)보다 큰 경우에만..

Problem Solving/BOJ 2023.08.11

[백준 / BOJ] C++ 17291 새끼치기

17291번: 새끼치기 문제 https://www.acmicpc.net/problem/17291 17291번: 새끼치기 실험실에서 새로운 종의 벌레 한 마리가 탄생하였다. 벌레는 스스로 분열하며, 분열하면 자기 자신과 같은 벌레를 한 마리 만들어 내게 된다. 벌레가 분열하는 규칙은 다음과 같다. 벌레는 기준 www.acmicpc.net 풀이 1년에는 1마리, 2년에는 2마리, 3년에는 4마리, 4년에는 8마리가 되었다가 1년에 탄생한 1마리가 죽어 7마리가 된다. 계속해보면 5년에는 14마리가 되고, 6년에는 28마리가 되었다가 2년에 탄생한 1마리와 3년에 탄생한 2마리가 죽어 25마리가 된다. 여기서 홀수년에 탄생한 개체는 3번 분열 후, 짝수년에 탄생한 개체는 4번 분열 후 사망하기 때문에 반드시 ..

Problem Solving/BOJ 2023.06.01

[코드포스 / Codeforces] Round #874 (Div. 3)

Round #874 (Div. 3) 대회 https://codeforces.com/contest/1833 Dashboard - Codeforces Round 874 (Div. 3) - Codeforces codeforces.com 푼 문제 A. Musical Puzzle 입력받은 문자열에서 연속된 두 글자의 종류의 수를 출력하면 된다. 중복되는 부분 문자열 처리를 위해 map 자료구조를 사용했다. #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while (t--) { string s; int n; cin >> n >> s; map M; for (int i = 0; i < n - ..

반응형