본문 바로가기

알고리즘16

[코딩테스트/ 백준 알고리즘] 18111번 : 마인크래프트 (C++ 풀이) 문제 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 풀이 자료구조 - int width : 맵의 가로 칸 수 - int vertical : 맵의 세로 칸 수 - int block : 초기에 입력받는 블록 수 - int rand[][] : 맵을 저장 - int max : 맵 중에 가장 높이가 높은 수 - int min : 맵 중에 가장 높이가 낮은 수 - int time : 가장 빠른 시간 저장할 변수 - int height : 시간이 tim.. 2022. 1. 31.
[백준 알고리즘/ 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.