[C++] 백준 1019 문제 해설
·
Algorithm/BACKJOON
1019번: 책 페이지첫째 줄에 0이 총 몇 번 나오는지, 1이 총 몇 번 나오는지, ..., 9가 총 몇 번 나오는지를 공백으로 구분해 출력한다.www.acmicpc.net문제 내용은 한번 읽으면 모두 파악할 수 있을정도로 간단하다.그런데 난이도는 골드 1 티어로 생각보다 높은편에 속한다. + 2024/06/10해당 문제의 난이도가 플레티넘 5 티어로 상향되었습니다. 1. 헤딩#include #include int N;long long zero = 0;long long one = 0;long long two = 0;long long three = 0;long long four = 0;long long five = 0;long long six = 0;long long seven = 0;long long ..
[C++] 백준 2166번 문제 해설
·
Algorithm/BACKJOON
2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net 이 문제는 생각보다 쉬운데, 난 많이 돌아서 풀었다. 신발끈 공식을 적용하지 않은 풀이 방법이다. 1. 그냥 풀어 보았다 #include #include #include struct Point { public: int x; int y; }; std::vector dots; int count; // 2차원 평면공간서 두 점의 거리를 구합니다. double getDistanceBetweenPoints(Point d1, Point d2) { return std::sqrt(std::pow((d2..
[C++] 백준 1305 번 문제 해설
·
Algorithm/BACKJOON
문제 설명 백준 1305번 문제는 다음과 같다. 1305번: 광고세준이는 길 한가운데에서 전광판을 쳐다보고 있었다. 전광판에는 광고가 흘러나오고 있었다. 한참을 전광판을 쳐다본 세준이는 이 광고가 의미하는 것이 무엇인지 궁금해지기 시작했다. 전광www.acmicpc.net 문제에 관해 간략히 해설하자면, 흔히 보는 전광판에서 글자가 돌아가며 출력될 때, 특정 순간에 전광판을 포착했을 때전광판은 특정 문자열로 구성되어 있을 터인데,전광판 사이즈보다 글자 수가 적다면, 특정 글자가 반복될 것이다. 이 때, 최소 str.length() 가 얼마인지 return 하면 되는 간단한 문제이다.......간단한 문제라고 생각했었는데, 생각보다 복잡하였다.  풀이 시행착오이 문제의 경우 KMP 알고리즘에서 사용되는 m..
[C++] 백준 19942 번 문제 풀이
·
Algorithm/BACKJOON
19942번: 다이어트식재료 N개 중에서 몇 개를 선택해서 이들의 영양분(단백질, 탄수화물, 지방, 비타민)이 일정 이상이 되어야 한다. 아래 표에 제시된 6가지의 식재료 중에서 몇 개를 선택해서 이들의 영양분의 각www.acmicpc.net 이전부터 비트마스킹에 대해서 좀 무시하는 경향이 있었다.때문에 비트마스킹으로 처리할 수 있는 문제도 굳이 우회해서 처리하곤 했는데,이번 문제에서 비트마스킹의 필요성을 느껴 배워서 코딩 하였다.   삽질원래 필자가 생각했던 방법은 다음과 같다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#includ..
[C++] 백준 1009 번 문제 해설
·
Algorithm/BACKJOON
1009번: 분산처리입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a www.acmicpc.net  정말 간단한 문제이다.논리적으로 조금만 생각해 보면 어렵지 않게 풀 수 있다.  설명 위 문제의 키포인트는 '마지막 자리' 숫자만 출력하면 된다는 것이다.위의 예제입력 9 635 의 경우엔 9의 635 제곱을 하라는 의미인데,이런식으로 연산하는것은 자원 낭비가 심할뿐더러추가 라이브러리를 이용하지 않는다면 overflow 를 일으킬 것이다.마지막 자리만 구하기 위해서는 굳이 모든 연산을 할 필요가 없다  코드#include using namespace std;int main(){ ios_base::sync_with..
[C++] 백준 2292 문제 해설
·
Algorithm/BACKJOON
2292번: 벌집위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌www.acmicpc.net 벌집 문제로 이전에 했던 투포인트보다 논리적으론 조금 어려운 문제이다.(나는 투포인트 문제가 더 쉬웠다) 설명 문제는 비교적 직관적으로 이해하기 쉬운 편이다.위와 같이 벌집이 있을때, 벌집을 자세히 관찰 해 보면 특정 숫자 구간마다 경로가 증가하는것을 확인할 수 있다.위 선을 기준으로 벌집의 경로가 하나씩 증가한다.7 의 경우엔 = 1,7 → 28 의 경우엔 = 1,2,8 or 1,7,8 → 3육각형 내의 경로점을 그려보면,같은 육각형 내의 선분이 지나가는 모든 구간은같은 ..
[C++] 백준 3273 문제 해설
·
Algorithm/BACKJOON
3273번: 두 수의 합n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i www.acmicpc.net 요즘 머리를 좀 안 쓴것 같아서 오늘부터 백준을 한 문제씩 풀어보려 한다. (안되면 말고)처음으로 시도해 본 문제는 비교적 쉬운 투포인터 문제이다.  처음볼땐 언어적으로 이해하기가 힘들어서그냥 코드를 먼저 살펴보니 쉽게 이해가 되었다.  설명입력 3개를 받는다.첫 입력 = 받을 수열의 size두번째 입력 = ' ' 로 구분지은 수열세번째 입력 = 수열중 2개를 더해서 나와야 되는 숫자. 'n개의 서로 다른 양의 정수' 를 입력 받는다 ..