분류 전체보기
-
[Baekjoon - 10821] 정수의 개수문제 풀이/Baekjoon Online Judge 2023. 2. 13. 14:09
난이도: Bronze II 태그 더보기 String 풀이 1. 그냥 풀어보자. 더보기 이론상으로는 쉬워보입니다. ','로 나누고, 각각이 정수인지 확인해보면 되죠. 그런데, ','로 나누는 건 어떻게 할까요? 각각이 정수인지는 또 어떻게 할까요? // 사실 Python을 쓰면 이런 걱정 안 해도 됩니다. 2. 재밌는 생각 더보기 ','를 기준으로 나누게 되면, 최종적으로 나오게 되는 조각은 ','의 개수 + 1개가 됩니다. 입력되는 문자열의 조건 상, 모든 조각은 항상 정수가 되므로, 문제의 답은 항상 ','의 개수 + 1이 됩니다. 3. 코드 더보기 1 2 3 4 5 6 void Main(){ string s; cin >> s; int ans = 1; for (char ch : s){ ans += (c..
-
[Baekjoon - 23080] 스키테일 암호문제 풀이/Baekjoon Online Judge 2023. 2. 13. 14:00
난이도: Bronze III 태그 더보기 String (문자열) 풀이 1. 출력되는 글자는? 더보기 입력된 문자열을, 굵기 \( K \)로 묶었다고 생각해봅시다. 그럼, 처음으로 나오는 글자는 1번째 글자가 됩니다. 그 다음으로 읽어야 하는 글자는, 한 바퀴를 돌아야 하니 \( K \)개 이후의 글자, 즉 \( 1+K \)번째 글자가 되겠죠. 위 과정을 반복하면, \( 1 + cK \)번째 글자만 읽으면 됨을 알 수 있습니다. 2. 코드 더보기 1 2 3 4 void Main(){ int k; string s; cin >> k >> s; int sl = s.size(); for (int i = 0; i
-
[Baekjoon - 26532] Acres문제 풀이/Baekjoon Online Judge 2023. 2. 13. 13:53
난이도: Bronze IV 태그 더보기 Arithmetic (사칙연산) 풀이 1. 넓이가 \( X \) acre일 때, 필요한 Bag의 개수는? 더보기 1개의 Bag가 \( 5 \) acre를 덮을 수 있으므로, \( \left\lceil \frac{X}{5} \right\rceil \)개가 필요합니다. 2. 근데 넓이는 몇 acre지? 더보기 땅의 넓이는 \( H \) yard × \( W \) yard = \( H \times W \) square yard입니다. 그리고, 4840 square yard = 1 acre니, 최종 넓이는 \( \frac{HW}{4840} \) acre임을 알 수 있습니다. 3. 코드 더보기 위의 수식을 하나하나 계산해가도 되고, 아니면 아래처럼 하나의 수식으로 묶어서 출..
-
[Baekjoon - 27324] ゾロ目 (Same Numbers)문제 풀이/Baekjoon Online Judge 2023. 2. 13. 13:42
난이도: Bronze V 태그 더보기 Input/Output 풀이 1. 가장 먼저 생각나는 풀이 더보기 그냥 문제에서 나온 대로 구현하면 됩니다. \( N \)을 입력받고, 10의 자리수와 1의 자리수를 나눈 뒤, 이 두 값이 같은지 비교하면 되죠. 이렇게만 짜도 충분히 쉽게 AC를 받을 수 있지만... 2. 재밌는 생각 더보기 굳이 입력받은 뒤 나눠야 할까요? 입력을 잘 생각해보면, \( N \)의 10의 자리와 1의 자리가 붙어서 들어옵니다. 그렇다면, 한 글자씩 입력받으면 알아서 나눠지겠죠. 3. 코드 더보기 1 2 3 4 void Main(){ char a, b; cin >> a >> b; cout
-
[Baekjoon - 22352] 항체 인식문제 풀이/Baekjoon Online Judge 2023. 2. 10. 16:22
난이도: Gold V 태그 더보기 Depth-First Search 풀이 1. (y, x)에 값 a의 백신을 투여한다면? 더보기 (y, x)와 연결된 위치들의 값들을 DFS를 돌려가면서 a로 바꿔주면 됩니다. DFS 한 번으로 백신을 놓는 시뮬레이션을 할 수 있다는 의미죠. 2. 백신을 투여했다고 확신할 수 있는 위치는? 더보기 백신 투여 이전과 이후의 값이 달라진 위치가 있다면, 그 위치는 반드시 백신의 영향을 받은 위치가 되죠. 하나의 연결 요소에 대해서, 연결 요소의 어느 위치에 백신을 놓든 결과는 동일하기 때문에 그냥 그 위치에 백신을 놓았다 라고 가정하고, 시뮬레이션을 돌려준 뒤, 실제 결과랑 비교해주면 됩니다. 만약 이전과 이후의 차이가 없다면, 그냥 적당한 위치에 이전/이후의 값이 동일한 백..
-
[AtCoder - ABC279 F] BOX문제 풀이/AtCoder 2023. 2. 9. 22:11
난이도: 1777 태그 더보기 Disjoint-Set Union 풀이 1. 1번 쿼리를 생각해보자. 더보기 \( i \)번 상자에 들어있는 공들의 집합을 \( S_{i} \)라고 합시다. 한 쪽 상자의 공을 다른 쪽 상자로 넣는 건, \( S_{X} \)와 \( S_{Y} \)를 합치는 것으로 표현해볼 수 있습니다. 두 집합을 합친다... 뭔가 DSU의 느낌이 나죠? 하지만 DSU에서 상자와 공을 둘 다 들고 있는 건 아무래도 무리가 있어 보입니다. 대신에, 상자를 빼고 공에 대해서만 DSU를 돌려봅시다. 만약 \( X \)번 상자에 있는 공 \( x \)와 \( Y \)번 상자에 있는 공 \( y \)를 알고 있다면, 이를 토대로 \( S_{x} \)와 \( S_{y} \)의 합집합을 구할 수 있겠죠...
-
[BOJ 4749] Take Your Vitamins문제 풀이/Baekjoon Online Judge 2023. 2. 9. 16:39
난이도: Bronze I 태그 더보기 Mathematics String → Parsing 풀이 1. 출력되는 \( P \)는 어떻게 계산할까? 더보기 \( P \)를 빼고는 입력에서 주어진 정보와 동일하니, 바로 출력해주면 됩니다. 그럼 \( P \)는 어떻게 계산할까요? \( P = \frac{A}{R} \times 100 \)입니다. 다르게 말하자면 (함유량) ÷ (권장량)을 백분율로 나타낸 거죠. 물론, 이 \( P \)가 \( 1 \)보다 작으면 조건문으로 빼주고, 나중에 Provides no significant amount of: 뒤에 출력해줘야 하겠죠. 2. 구현 디테일 더보기 \( V \)에는 공백이 들어올 수도 있기 때문에, 공백까지 같이 입력받아줘야 합니다. 하지만 공백을 기준으로 한 ..
-
[27331] 2 桁の整数 (Two-digit Integer)문제 풀이/Baekjoon Online Judge 2023. 2. 8. 20:34
난이도: Bronze V 태그 더보기 Input-Output 풀이 1. 재밌는 생각 더보기 아마 이 문제를 보고 처음 든 생각은 \( A \)와 \( B \)를 입력받은 뒤, \( 10 \times A + B \)를 출력하는 방법일 겁니다. 하지만, 그냥 \( A \)와 \( B \)를 붙여서 출력한다면? 놀랍게도 출력 결과는 동일합니다! 2. 코드 더보기 1 2 3 4 void Main(){ int a, b; cin >> a >> b; cout