본문 바로가기

코딩테스트22

[백준 알고리즘/ C++] BOJ.2292 : 벌집 문제 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 풀이 자료구조 - int input : 입력 - int layer : 벌집 단 수 - int start : 시작 숫자 - int finish : 끝 숫자 알고리즘 -수학 설명 벌집이 1단, 2단, 3단 으로 커질 수록 위와 같은 규칙성을 가진다는 것을 찾아서 그 규칙성에 맞게 풀면 된다. 코드 include using namespace std; int main() { int input = 0; //입.. 2022. 1. 31.
[코딩테스트/ 백준 알고리즘] BOJ.2798 : 블랙잭 (C++ 풀이) 문제 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 풀이 자료구조 - int cardnum : 카드 수 - int card[] : 카드 - int num : 입력 - int sum : 카드 세개의 합 - int max : sum의 최대 알고리즘 - 브루트포스 설명 가능한 모든 경우의 수를 탐색하는 것이 중요하다. 나는 3중 for문을 사용하여 모든 경우의 수를 고려했다. ex) 카드의 수가 5면 (1,2,3),.. 2022. 1. 30.
[백준 알고리즘/ C++] BOJ.10828 스택 문제 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 자료구조 - int stack[] : 스택을 구현하기 위한 배열 - int top : top의 역할을 하는 변수 - int data : 입력 값 - int num : 테스트 입력 수를 저장하는 변수 - int count : 실행횟수 세기 위한 변수 알고리즘 - 스택 - 자료구조 코드 - C++은 string이라는 문자열을 처리하기에 유리한 변수가 있기 때문에 사용 - .. 2022. 1. 30.
[코딩테스트/ 백준 알고리즘] BOJ.1463 : 1로 만들기(탑다운) (C++ 풀이) 문제 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 풀이 자료구조 - int input : 입력 - int dp[] : dp 테이블 알고리즘 - 다이나믹 프로그래밍 - 재귀 사용한 탑다운 방식 - 점화식 : dp[i] = min(DP(i / 2), DP(i / 3), DP(i - 1)) + 1 코드 #include #include using namespace std; int dp[1000001] = {0}; int DP(int input) { //중복 계산 방지 if(dp[input] != 0) { return dp[input]; } else { if(in.. 2022. 1. 18.