전체 글 31

[BOJ] 백준 16236 아기 상어 c++ (BFS, 구현, 시뮬레이션)

문제https://www.acmicpc.net/problem/16236 풀이먼저 이동할 상어의 위치를 저장할 shark, bfs에 사용할 visit과 상어의 크기, 먹이를 먹은 횟수를 저장할 변수를 선언했습니다. int sea[21][21], visit[21][21];vector> shark;int dx[4] = {0, -1, 1, 0};int dy[4] = {-1, 0, 0, 1};int ans = 0, size_shark = 2, cnt = 0; 다음으로는 큰 사이클입니다. 상어가 한 번의 먹이를 먹는 것을 하나의 사이클로 잡아 구현했습니다. 여기에 사이클을 진행하면서 먹이를 먹는 것과, 몸집을 불리는 것을 추가했습니다. 그리고 memset을 이용해 방문 여부를 계속 초기화해 줬습니다. whil..

coding/algorithm 2025.06.26

[BOJ] 백준 16235 나무 재테크 c++ (구현, 시뮬레이션, 자료구조)

문제 https://www.acmicpc.net/problem/16235 풀이deque를 사용하여 심어져 있는 나무들을 저장했습니다. int food[10][10];int ground[10][10];deque tree[10][10];int dx[8] = {0, 1, 1, 1, 0, -1, -1, -1};int dy[8] = {1, 1, 0, -1, -1, -1, 0, 1}; 칸마다 다르게 작동하기 때문에 봄과 여름을 한 번에 처리했습니다. 봄은 단순히 땅에 남아있는 영양분과 나무의 나이를 비교하여 자랄 수 없는 경우엔 cnt로 개수를 저장했습니다. 그런 후 여름은 나무들이 나이순으로 저장되어 있기 때문에 뒤에서부터 cnt값만큼의 나무들을 양분으로 바꿨습니다. int cnt = 0;for (int l..

coding/algorithm 2025.06.23

마인크래프트 수상한 스튜 얻는 법 / 효과

이번 포스팅에선 수상한 스튜에 대해서 다뤄봤습니다. 수상한 스튜의 경우 1.13 버전 이상에서 구할 수 있으며, [어쩌다 이 지경까지] 도전과제를 해금하는데 사용할 수 있습니다. 일반적으로 전혀 쓸모가 없다는 의견이 강하지만 포화 효과를 가진 스튜의 경우 배고픔이 13칸, 포만감이 21 즉, 인게임 기준 6칸 반의 배고픔을 해결할 수 있어 얻을 수 있는 경우 나름 쏠쏠한 편입니다. 수상한 스튜 조합법 / 얻는 법1) 무쉬룸(버섯소) 사용수상한 스튜를 가장 효율적으로 얻는 방법은 버섯소를 이용하는 것입니다. 일반적으로 스폰되거나 소환하는 버섯소의 경우 빨간색의 형태를 띠고 있는데, 이 버섯소에 번개를 맞추면 갈색으로 변하며 수상한 스튜를 얻을 수 있게 변합니다. 변개의 경우 비오는 날 피뢰침을 사용하..

게임/minecraft 2025.06.21

[BOJ] 백준 15685 드래곤 커브 c++ (구현, 시뮬레이션)

문제https://www.acmicpc.net/problem/15685 풀이가장 먼저 입력에 있는 인덱스 별 이동 방향을 잡아줬습니다. 처음에 dy를 {0, 1, 0, -1}로 했다가 한참 헤매버렸습니다.int flat[101][101];int dx[4] = {1, 0, -1, 0};int dy[4] = {0, -1, 0, 1}; 다음으로는 점을 그리는 함수를 만들었습니다. vector를 선언해서 세대별로 지나친 방향들을 저장했습니다. 1세대의 경우 0세대 까지 이동한 선을 90도 돌리고, 2세대의 경우 0, 1세대에 이동한 선을 90도 돌리고, 3세대의 경우 0, 1, 2세대에 이동한 선을 90도 돌리는 방식이기 때문에 쭉 기록하는 방식으로 구현했습니다. 0 -> 10 1 -> 2 10 1 2 1..

coding/algorithm 2025.06.19

마인크래프트 끈 조합법 및 신기능 총정리

이번 1.21.6 버전 패치가 출시되면서 끈의 여러 편의성이 개선되었다는 것을 듣고 한번 정리해 봤습니다. 끈 얻는 법1) 제작 법이번 1.21.6 버전의 패치가 이뤄지면서 끈의 제작법 또한 바뀌었습니다. 기존의 제작법은 슬라임 볼이 들어 제작 난이도가 있던 반면 편의성 패치로 실만 있어도 끈을 제작할 수 있게 되었습니다. 이전 버전에서 끈을 만들 경우에는 기존 제작법으로 하시면 됩니다. 2) 자연에서 얻는 법자연에서 얻는 가장 대표적인 방법은 떠돌이 상인을 이용하는 것 입니다. 떠돌이 상인의 경우 처음 월드가 생성되고 20분이 지나면 2.5% 확률로 플레이어 주변에 스폰이 됩니다. 이때 스폰이 되지 않으면 다음 20분 후 기존의 확률에 2.5%를 더해 스폰을 시도합니다.(1시간이 지난 시점엔 ..

게임/minecraft 2025.06.18

[BOJ] 백준 15684 사다리 조작 c++ (구현, 백트래킹)

문제https://www.acmicpc.net/problem/15684 풀이문제 조건에 사다리를 최대 3개만 설치 가능하다는 것을 보고 바로 백트래킹으로 구현했습니다. 백트래킹의 진행 조건으로 사용한 것은 3개를 초과하는가? 현재 저장된 정보보다 값이 적은가? 조건에 맞도록 구현이 되었는가? 총 3가지입니다. 3개를 초과하는 경우엔 의미가 사라지고, 이미 저장된 답보다 커지면 불필요한 계산, 조건에 맞지 않으면 성립 자체가 되지 않기에 탈출 조건으로 지정해 줬습니다. void dfs(int n, int h, int cnt, int y){ if (cnt >= ans) return; if (check(n, h)) { ans = cnt; return;..

coding/algorithm 2025.06.16

[BOJ] 백준 10986 나머지 합 c++ (수학, 누적 합)

문제https://www.acmicpc.net/problem/10986 풀이먼저 구간의 총합에 대한 나머지 개수를 저장합니다. 이때 나머지 개수로 저장하는 이유는 구간을 정하는 상황에서 같은 나머지를 갖는 구간끼리 선택하면 M으로 딱 나눠 떨어지기 때문입니다. 예를 들어 1 3 2 5 2 8 2가 주어지고 3으로 나누는 상황이라는 가정하에 구간별 총합은 1 4 6 11 13 21 23이고 나머지는 1 1 0 2 1 0 2 입니다. 그러면 나머지 리스트에는 2 3 2가 저장됩니다. 이때 나머지를 저장하는 리스트의 크기는 int로 하면 차원이 축소되어 배열 크기 초과가 일어날 수 있기에 주의해줘야 합니다. long long mod[1001];...for (int i = 0; i > tmp; sum..

coding/algorithm 2025.06.15

레인보우 식스 시즈 X 듀얼 프론트 - 설명 및 플레이 화면 (레식 X Dual Front)

레인보우 식스 시즈 X가 출시되면서 새로 Dual Front 모드가 출시됐습니다. 기본 규칙 설명게임은 6 vs 6으로 진행되며, 기존의 폭탄전 모드를 동시에 진행한다고 이해하시면 편한 모드입니다. 그래서 수비팀이 옥상에서 수비를 하는 상황이나, 공격을 가는 수비 오퍼레이터 등 다양한 상황이 연출되는 게 흥미로웠습니다. 구역은 크게 공격, 중립, 수비 지역으로 나뉩니다. 그리고 각 팀은 총 3개의 거점을 가지고 있으며, 최종 거점까지 점령하거나 제한시간 내에 더 많은 게이지를 채운 팀이 승리합니다. 선택할 수 있는 오퍼레이터 또한 제한되있습니다. 대신에 공격, 수비 오퍼레이터들이 역할에 국한되어 있지 않아 캐슬, 프로스트 등으로 공격을 가거나 글라즈, 몽타뉴로 수비를 할 수 있는 재미가 있었습니..

[BOJ] 백준 15683 감시 c++ (백트래킹, 구현, 시뮬레이션) - 삼성 SW 역량 테스트

문제https://www.acmicpc.net/problem/15683 풀이문제를 접하자마자 cctv의 개수가 8개 이하라는 것을 보고 백트래킹을 통해 해결해야겠다는 아이디어를 생각했습니다. 다음으로는 x, y 이동 뱡향을 시계 방향으로 잡아주고, cctv번호에 맞는 감시 방향을 vector를 통해 미리 선언해 줬습니다. int room[8][8];int dx[4] = {0, 1, 0, -1};int dy[4] = {1, 0, -1, 0};vector dir[6] = {{}, {0}, {0, 2}, {0, 3}, {0, 2, 3}, {0, 1, 2, 3}}; 다음 단계로 앞서 생각해 뒀던 백트래킹을 사용하여 단계를 진행했고, 해당 단계에서 cctv가 회전하는 것을 반영하기 위해 "(i + dir[n..

coding/algorithm 2025.06.12

마인크래프트 해피 가스트의 모든 것(얻는 법)

마인크래프트가 곧 1.21.6 패치를 진행하면서 새로운 중립 몹인 해피 가스트가 나온다는 소식을 보고 재밌어 보여서 정리해 봤습니다. 1. 얻는 법 및 부화해피 가스트를 얻기 위해선 먼저 마른 가스트를 얻어 물을 통해 부화를 시켜야 합니다, 1) 자연에서 얻는 법마른 가스트는 기본적으로 지옥의 soul_sand_balley 바이옴. 즉, 소울샌드 지역에서 뼈무덤 아래 등장합니다. 처음 월드가 생성될 때 33% 확률로 스폰이 되며, 아무 도구나 심지어 손으로도 캘 수 있습니다. 2) 제작으로 얻는 법마른 가스트는 가스트의 눈물 8개와 영혼 모래 1개를 통해 제작할 수 있지만 제료 수급의 난이도가 꽤 높은 편입니다. 이때 영혼 모래가 아닌 영혼 흙을 사용하면 마른 가스트는 제작되지 않습니다. ..

게임/minecraft 2025.06.09