반응형

분류 전체보기 274

[백준 / BOJ] C++ 28683 피타! 피타! 피타츄!

28683번: 피타! 피타! 피타츄! 문제 https://www.acmicpc.net/problem/28683 28683번: 피타! 피타! 피타츄! 포켓몬스터를 좋아하는 종우는 포켓몬스터를 연구하다가 포켓몬스터가 상당히 수학적이고 코딩과 밀접한 관련이 있는 게임이라는 것을 알게 되었다. 모든 이동은 유클리드 공간에 평행하게 이 www.acmicpc.net 풀이 대회 당시에는 문제를 해결하지 못했다. 친구의 설명으로 문제를 해결하고 에디토리얼을 참고했다. 몇 가지 조건을 나누어 문제를 해결할 수 있다. 1. n이 제곱수인 경우 √n은 정수다. 임의의 정수 a에 대해 (√n, a, √(n+a^2))이 직각삼각형을 이루고, 두 변의 길이가 √n과 a로 정수이므로 무한하다. 2. n이 제곱수가 아닌 경우 나머지..

Problem Solving/BOJ 2023.08.17

[백준 / BOJ] C++ 28682 재우야 임관하자

28682번: 재우야 임관하자 문제 https://www.acmicpc.net/problem/28682 28682번: 재우야 임관하자 인터랙티브 문제의 경우 출력을 하고, 언어에 따라 아래와 같은 명령어를 바로 다음에 적어 출력 버퍼를 flush해 줘야 한다. C: fflush(stdout); C++: fflush(stdout); 혹은 std::cout > n; string a[] = {"swimming", "bowling", "soccer"}; for (int i = 0; i < n; i++) // 그냥 swimming만 n번 출력해도 된다. cout

Problem Solving/BOJ 2023.08.17

[백준 / 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
반응형