728x90 algorithm 썸네일형 리스트형 [백준알고리즘] 2798번: 블랙잭 -Python, C++ [백준알고리즘] 2798번: 블랙잭 -Python, C++ 2798번: 블랙잭 (acmicpc.net) 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 저번에도 파이썬으로 풀었던 문제인데, 파이썬은 먼저 조합을 모두 구한 뒤 적절한 답을 찾았다면, 이번에 푼 C++은 약간 다르게 풀었다. BFS와 비슷하게 풀었으며, \(Queue\)를 사용했다. \(Queue\) 안에는 tuple을 사용해서 세 개의 값을 쌍으로 단위 처리했다. tuple 안에는 (카드 선택 횟수, 현재까지 선.. 더보기 [백준알고리즘] 2447번: 별 찍기 - 10 -C++ [백준알고리즘] 2447번: 별 찍기 - 10 -C++ 2447번: 별 찍기 - 10 (acmicpc.net) 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 별 찍기 문제 10번이다. 예전에 파이썬으로 푼 적이 있었다. 아래는 그때 풀었던 파이썬 풀이 링크다 [백준알고리즘] 2447번: 별 찍기 10 -Python (tistory.com) 이번에 풀 때도 마찬가지로 *로 채워진 전체 판에서 삭제할 부분을 선택했다. 그래서 로직 자체는 쉽게 재귀로 생각해서 풀렸는데.... 알 수 없.. 더보기 [백준알고리즘] 10872번: 팩토리얼 -Python, C++ [백준알고리즘] 10872번: 팩토리얼 -Python, C++ 10872번: 팩토리얼 (acmicpc.net) 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 팩토리얼 문제다. 입력으로 들어올 수 있는 범위는 0 이상 12 이하이다. 하지만 \(12! = 479,001,600\) 로 int는 물론 unsigned int도 범위를 벗어나게 된다. 따라서 결과값을 저장하는 \(factorial\) 변수는 int64_t로 선언을 해주었다. 예전에 파이썬으로도 통과를 했었는데, C++은 반복문으로 푼 반면 재귀를 사용했길래 그냥 같이 올린다. #include void solve(void); int main(void) { .. 더보기 [백준알고리즘] 1002번: 터렛 -Python, C++ [백준알고리즘] 1002번: 터렛 -Python, C++ 1002번: 터렛 (acmicpc.net) 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 뭔가 간단히 생각했다가 생각보다 '맞나?' 하면서 생각을 좀 하게 됐다. 각각의 경우를 따져보게 되면 그래도 쉽게 풀 수 있다. 0은 하나의 원이 다른 원에 포함되거나, 서로 밖에 위치해 만나지 않는 경우 1은 하나의 원이 다른 원 안에서 포함되면서 한 점에서 만나는 내접하는 경우와, 하나의 원이 다른 원 밖에서 한 점에서 만나는 외접하는 경우 2는 원끼리 겹쳐서 두 점에서 만나는 경우 -1은 두 원이 일치하는 경우.. 더보기 [백준알고리즘] 3053번: 택시 기하학 -Python, C++ [백준알고리즘] 3053번: 택시 기하학 -Python, C++ 3053번: 택시 기하학 (acmicpc.net) 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net 유클리드 거리(Euclidean distance)와 택시 거리(맨하탄 거리, Manhattan distance)에 대한 내용을 다루고 있다. 유클리드 거리는 어릴 때 배우는 피타고라스 정리에 의한 거리 계산 방법이다. 두 점 \((x_1, x_2)\)와 \((y_1, y_2)\) 사이의 거리는 \(\sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2}\)이다. .. 더보기 [백준알고리즘] 4153번: 직각삼각형 -C++ [백준알고리즘] 4153번: 직각삼각형 -C++ 4153번: 직각삼각형 (acmicpc.net) 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 저번과 마찬가지로 while의 조건문 안에서 cin을 통해서 입력을 받았다. std::cin은 istream 객체를 return 하지만 if와 while의 조건문 안에서는 bool을 return 하게 된다. istream이 아닌 현재 상태에 따라 좋은 입력 상태일 경우 true를 return 하며 좋지 않은 입력 상태일 경우 false를 return한다. 헤더의 sort를 사용해 입력.. 더보기 [백준알고리즘] 1085번: 직사각형에서 탈출 -C++ [백준알고리즘] 1085번: 직사각형에서 탈출 -C++ 1085번: 직사각형에서 탈출 (acmicpc.net) 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net 현재 위치에서 모든 네 면까지의 거리를 모두 벡터에 넣는다. 그리고 모든 거리 중에 가장 작은 값의 거리를 출력한다. 그래서 헤더의 min_element를 사용해서 최소 값을 출력한다. min_element와 max_element는 iterator를 반환하기 때문에 앞에 *를 붙여줌으로써 해당 값을 읽는다. 쉬운 문제였다. :) #inclu.. 더보기 [백준알고리즘] 9020번: 골드바흐의 추측 -C++ [백준알고리즘] 9020번: 골드바흐의 추측 -C++ 9020번: 골드바흐의 추측 (acmicpc.net) 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 다른 소수 문제와 마찬가지로 에라토스테네스의 체를 사용해서 범위 내의 모든 수에 대한 소수 판정을 먼저 실시했다. 이후 \(n\)이 입력되면 \((n/2, n-n/2)\) 쌍이 모두 소수인지 확인을 한다. 두 수가 모두 소수라면 해당 쌍은 골드바흐 파티션이 된다. 또한 문제의 조건에서 소수 합이 여러 개가 존재한다면 그 차이가 가장 작은.. 더보기 이전 1 ··· 8 9 10 11 12 13 14 ··· 37 다음