반응형

구현 53

[백준 / 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++ 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++ 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

[백준 / BOJ] C++ 10988 팰린드롬인지 확인하기

10988번: 팰린드롬인지 확인하기 문제 https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 풀이 먼저 문자열을 입력받고 이를 복사한다. 복사한 문자열을 헤더파일의 reverse 함수를 사용해 뒤집어준다. 그리고 원본과 뒤집힌 복사본의 일치 여부를 출력한다. 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); string a, b; cin >> a; b = a; reverse(b.begin(), b.end(..

Problem Solving/BOJ 2023.05.15

[백준 / BOJ] C++ 15786 Send me the money

15786번: Send me the money 문제 https://www.acmicpc.net/problem/15786 15786번: Send me the money 입력의 첫째 줄에 석규가 기억하는 원본 알파벳의 수 N(1 ≤ N ≤ 100)과 포스트잇의 개수 M(1 ≤ M ≤ 1000)이 주어진다. 다음 줄에 길이가 N인 알파벳 대문자로 이루어진 문자열 S가 주어진다. 이 후 M www.acmicpc.net 풀이 기억하는 원본 알파벳의 각 글자가 순서대로 있는지 포스트잇의 문자열에서 찾으면 된다. 문자열의 find 메소드로 원본의 0번 index의 글자를 포스트잇의 처음부터 찾고 존재한다면 그 위치 + 1부터 1번 index의 글자를 찾으며 반복한다. 중간에 찾을 수 없다면 flag를 1로 바꾸고 멈..

Problem Solving/BOJ 2023.05.15

[백준 / BOJ] C++ 27964 콰트로치즈피자

27964번: 콰트로치즈피자 문제 https://www.acmicpc.net/problem/27964 27964번: 콰트로치즈피자 치즈와 피자에 환장하는 비행씨는 매일같이 치즈피자를 사 먹다가 지갑이 거덜 나고 말았다. 만들어 먹는 것이 사 먹는 것보다 싸다는 것을 안 비행씨는 여러 가지 토핑을 가져와서 직접 피자를 www.acmicpc.net 풀이 서로 다른 치즈가 4종류 이상 존재하느냐가 중요하다. Cheese의 크기는 6이므로 문자열 크기가 5 이하인 문자열은 예외처리를 해줘야 한다. 그리고 나머지 문자열에 대해 마지막 글자 6글자가 Cheese인지 검사하면 된다. 중복 처리를 위해 map 자료형을 사용한다. map의 크기가 4 이상이면 yummy를 출력하고 아니면 sad를 출력한다. 코드 #inc..

Problem Solving/BOJ 2023.04.18

[백준 / BOJ] C++ 27962 오렌지먹은지오랜지

27962번: 오렌지먹은지오랜지 문제 https://www.acmicpc.net/problem/27962 27962번: 오렌지먹은지오랜지 오렌지를 먹은 지 오래된 선생님은 부족한 비타민C를 문자열 문제를 통해 보충하려고 한다. "오렌지 먹은 지 오랜지"의 "오렌지", "오랜지"와 같이, 길이가 동일하며 각각 맨 앞, 맨 뒤 문자를 포 www.acmicpc.net 풀이 앞과 뒤에서부터 각각 길이가 1에서 N까지인 문자열을 한 자리씩 비교해 다른 문자가 1개만 있으면 YES를 출력하고 프로그램을 종료한다. 모두 비교했는데 YES를 출력하지 않았다면 NO를 출력한다. 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0..

Problem Solving/BOJ 2023.04.18

[백준 / BOJ] C++ 2505 두 번 뒤집기

2505번: 두 번 뒤집기 문제 https://www.acmicpc.net/problem/2505 2505번: 두 번 뒤집기 첫줄에는 숫자판의 크기를 나타내는 정수 N (5 ≤ N ≤ 10,000)이 주어진다. 그 다음 줄에는 두 개의 구간이 뒤집혀진 놀이판의 상태를 나타내는 숫자들이 하나의 공백을 두고 나타난다. www.acmicpc.net 풀이 먼저 왼쪽에서 오른쪽으로 진행하며 i번째 칸의 수가 i가 아닌 경우 i의 위치를 찾아 두 위치를 정답 배열에 추가하고 두 위치 사이의 모든 값을 reverse 한다. 그러면 i번째 칸의 수는 i가 되었으므로 다음 수로 넘어가 위 과정을 반복한다. 만약 정답 배열의 크기가 2보다 큰 경우, 답이 될 수 없으므로 위에서 했던 과정을 오른쪽에서 왼쪽으로 진행한다. ..

Problem Solving/BOJ 2023.04.13

[백준 / BOJ] C++ 16567 바이너리 왕국

16567번: 바이너리 왕국 문제 https://www.acmicpc.net/problem/16567 16567번: 바이너리 왕국 첫째 줄에 바이너리 길의 칸의 개수 N, 시련의 개수 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에 N개의 현재 바이너리 길의 상태가 주어진다. 그다음 M개의 줄에 걸쳐서 시련이 주어진다. 이때 0 www.acmicpc.net 풀이 이어져 있는 더러운 칸을 하나의 집합이라 했을 때 몇 개의 집합이 있는지 카운트 수를 유지해 주면 된다. 현재 상태를 입력받을 때 N+2 크기의 배열을 만들어 0번 index와 N+1번 인덱스는 0으로 두고 1~N번 인덱스에 수를 입력받는다. 왼쪽부터 차례로 입력을 받으므로 입력이 더러운 칸일 때, 왼쪽 칸이 깨끗한 칸인 경우..

Problem Solving/BOJ 2023.04.12

[백준 / BOJ] C++ 27866 문자와 문자열

27866번: 문자와 문자열 문제 https://www.acmicpc.net/problem/27866 27866번: 문자와 문자열 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$) www.acmicpc.net 풀이 문자열 S의 i번째 문자를 출력하는 문제다. 문자열 s와 정수 i를 입력받고 s[i-1]을 출력하면 된다. 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); string s; int i; cin >> s >> i; cout

Problem Solving/BOJ 2023.04.11
반응형