분류 전체보기
-
[AtCoder - ARC101 C] Candles문제 풀이/AtCoder 2023. 3. 4. 20:06
난이도: 947 태그 더보기 Sliding Window 풀이 1. \( K \)개의 초가 결정되었을 때, 이를 최소한의 시간을 써서 켜는 방법은? 더보기 선택된 \( K \)개의 초 중, 맨 왼쪽에 있는 초 \( x_1 \)과 맨 오른쪽에 있는 초 \( x_K \)를 생각해봅시다. 이 두 초는 선택된 초이므로 반드시 켜야 합니다. 그런데, \( x_1 \)을 켜러 가는 길에서 + \( x_K \)를 켜러 가는 길에서 다른 초들 \( x_2, x_3, \ldots, x_{K-1} \)을 모두 만나게 되기 때문에, 실제로는 \( x_1 \)과 \( x_K \)만 고려하면 됩니다. 그럼 실제로는 얼마나 걸릴까요? 이는 두 초의 방향에 따라 달라집니다. 만약 \( x_1 \)과 \( x_K \)이 출발점을 기준..
-
[ARC142 A] Reverse and Minimize문제 풀이/AtCoder 2023. 3. 4. 19:51
난이도: 552 태그 더보기 Mathematics Reversal 풀이 1. 뒤집기 연산의 특징 더보기 문자열을 뒤집는다고 생각해봅시다. 그럼, 2번 뒤집으면 원래대로 돌아온다는 건 자명합니다. 그런데, 이번에는 수를 뒤집기 때문에, 그리고 그 뒤에 Leading Zero를 삭제하기 때문에 2번 뒤집는다고 항상 원래대로 돌아오진 않을 수 있습니다. 하지만, 조금 더 나아가볼까요? 어떤 수는, 그 초기 상태만으로도 Leading Zero가 존재하지 않습니다. 1번 뒤집으면, Leading Zero와 Trailing Zero가 존재하지 않습니다. // Trailing은 원래 Leading이 없었으니 존재하지 않고, Leading은 삭제되죠. 2번 뒤집어도, Leading Zero와 Trailing Zero가..
-
[AtCoder - ARC020 A] 石を滑らせるゲーム문제 풀이/AtCoder 2023. 3. 4. 14:44
난이도: 68 // -308, Experimental 번역 더보기 A. 돌을 미는 게임 Ant와 Bug가 일직선 모양의 얼음판에서 돌을 미는 게임을 하고 있습니다. 이 얼음판은 -1000 mm부터 1000 mm까지의 위치를 덮고 있습니다. 두 플레이어는 각각 1번씩, 돌을 얼음판 위에서 미끄러뜨립니다. 미끄러진 돌과 위치 0과의 거리가 더 짧은 사람이 승리합니다. 만약 두 플레이어의 거리가 동일하다면, 무승부입니다. Ant가 위치 A에 돌을 위치시켰고, Bug가 위치 B에 돌을 위치시켰을 때, 누가 승리했는지 출력하세요. 태그 더보기 Comparison 풀이 1. 특정 돌과 위치 0 사이의 거리는? 더보기 1차원에서, 두 점 사이의 거리는 \( |x_1 - x_2| \)입니다. 지금은 \( x_2 = 0..
-
[AtCoder - ABC152 B] Comparing Strings문제 풀이/AtCoder 2023. 3. 4. 13:25
난이도: 25 // -705 태그 더보기 Comparison 풀이 1. 사전순으로 더 앞서는 숫자는? 더보기 출력되는 숫자는 \( a \) 또는 \( b \)이기 때문에, 둘 중 사전순으로 더 앞서는 숫자를 출력해야 합니다. 그런데, 사전순으로 더 앞서는 숫자는 그냥 더 작은 숫자죠. 그러므로, \( \min(a, b) \)를 \( \max(a, b) \)회 출력하면 됩니다. 2. 코드 더보기 1 2 3 4 5 void Main(){ int a, b; cin >> a >> b; if (a > b){ swap(a, b); } while (b--){ cout
-
[Baekjoon - 25286] 11월 11일문제 풀이/Baekjoon Online Judge 2023. 3. 4. 13:18
난이도: Bronze III 태그 더보기 Case Work Leap Year Detection 풀이 1. m월 m일의 m일 전은? 더보기 간단히 생각해보면, m월 m일에서 m을 뺀 값인 m월 0일이 됩니다. 하지만 0일이라는 건 없으니, m-1월의 말일로 넘어가게 되겠죠. 즉, m월 m일의 m일 전은 m-1월 말일이라는 것을 의미합니다. 2. 구현 방식 더보기 아래는 구현을 편하게 해줄 몇몇가지 추천입니다. month[m]: m월에는 몇 일까지 있는지 저장해두는 배열입니다. // 특히 이 문제에서는 month[0] = month[12]로 하는 걸 추천합니다. leap(y): y년이 윤년인지 판별하는 함수입니다. 3. 코드 더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 int day[15] ..
-
[Baekjoon - 25449] Eurokulen문제 풀이/Baekjoon Online Judge 2023. 3. 3. 12:30
난이도: Silver V 태그 더보기 Sort 풀이 0. 시작하기 전: 간단한 정의 더보기 \( A_{i, x} \)은 \( i \)번째 참가자가 \( x \)점을 준 참가자의 번호를 의미합니다. 이 값은 \( i \)번째 참가자가 \( N-x \)위를 준 참가자의 번호와 일치합니다. 1. 각 참가자의 점수는 어떻게 정할까? 더보기 \( i \)번 참가자의 점수를 계산해봅시다. 이는, \( A_{j, x} = i \)를 만족하는 모든 \( (j, x) \) 순서쌍에 대해, \( x \)점씩 추가로 더해주면 됩니다. 참가자의 점수를 1명씩 계산해야 할 필요는 없으니, \( A_{i, x} \)를 돌아보면서 \( A_{i, x} \)번 참가자에 \( x \)점을 더해주면 됩니다. 이 뒤로 남은 건 점수 순 ..
-
[Baekjoon - 2049] 가장 먼 두 점문제 풀이/Baekjoon Online Judge 2023. 3. 2. 11:30
난이도: Platinum III 태그 더보기 Convex Hull 풀이 1. 가장 먼 두 점의 후보가 될 수 있는 점은? 더보기 우선,입력받은 점들을 토대로 볼록 껍질을 만들어 봅시다. 볼록 껍질을 만드는 이유는, 볼록 다각형에서 가장 먼 두 점은 경계에 있는 두 점이기 때문입니다. // 그렇지 않다면, 경계를 만날 때까지 더 늘릴 수 있겠죠. 다만 이게 가장 먼 두 점이 볼록 껍질에 포함된 점뿐임을 의미하진 않을수도 있습니다. // 가장 먼 두 점이 꼭짓점이 아니라 변에 위치한 점이었다면? 그 점을 실제로는 다시 만들어낼 수 없으니 잘 생각해봐야겠죠. 즉, 이 부분에 대해서는 추가적으로 생각을 해봐야겠죠. 다행히도, 볼록 다각형에서 가장 먼 두 점은 항상 두 꼭짓점이 됩니다. // 두 점을 잡아보고, ..
-
[Baekjoon - 10497] Hitting the Targets문제 풀이/Baekjoon Online Judge 2023. 3. 2. 08:18
난이도: Bronze I 태그 더보기 Geometry 풀이 1. 점이 직사각형 안에 있는지 확인하는 방법은? 더보기 직사각형의 좌측 하단 점을 \( (x_1, y_1) \), 우측 상단 점을 \( (x_2, y_2) \)라고 합시다. 우리가 입력받은 점이 \( (x, y) \)라면, 점이 직사각형 안에 있기 위해서는 \( x \)좌표는 \( x_1 \) 이상 \( x_2 \) 이하여야 하고, \( y \)좌표는 \( y_1 \) 이상 \( y_2 \) 이하여야 합니다. 식으로 쓰자면, \( x_1 \le x \le x_2 \), \( y_1 \le y \le y_2 \)가 됩니다. 2. 점이 원 안에 있는지 확인하는 방법은? 더보기 원의 중심을 \( (x_1, y_1) \), 반지름을 \( r \)이라고..