본문 바로가기
728x90
반응형

전체 글190

[CRP] 조합 방탈출 메이플스토리의 "로미오와 줄리엣" 파티퀘스트에는 연구실을 수색해 숨겨진 문을 찾는 퀘스트가 존재합니다. 해당 요소와 "좀보이드", "배틀그라운드" 등과 같은 게임의 파밍 시스템을 조합하면 어떨까 생각했습니다. 특정 위치에서 "NPC/채집"키를 누를 시, 상점 이미지가 뜹니다. 이후 해당 상점에서 원하는 아이템들만 골라서 구매한 후, 한 명의 파티원에게 모아 조합하여 새로운 아이템으로 방을 탈출하는 시스템 입니다. 또는 방탈출 종류가 아니더라도, 특정 아이템을 사용해서 몬스터를 잡거나, 처치하는 방식으로도 가능합니다. ex) java 소스코드 import java.util.ArrayList; import java.util.Random; public class Main { static boolean succ.. 2023. 2. 9.
[CRP] 몬스터 땅따먹기 캐릭터가 메이플스토리의 몬스터가 되어 이동하면서 서로 땅따먹기 게임을 하는 미니게임입니다. 미니게임판은 이런식으로 양 끝에서 2명~4명의 플레이어가 시작합니다. WASD나 ←→↑↓로 이동합니다. 이런식으로 이동하면서, 이동한 칸에는 색깔을 입히게 됩니다. 주황버섯과 예티처럼 예티가 지나간 길을 주황버섯이 지나가게 되면 색깔이 주황버섯의 색깔로 변경됩니다. 최종적으로 가장 많이 먹은 캐릭터가 이깁니다. ex) 소스코드 #include #include #include #include using namespace std; int winner, max_eat_box; int map[21][21]; bool visited[21][21]; vector player(4); int dx[] = { 1, 0, -1, 0.. 2023. 2. 2.
강한 연결 요소 (Strongly Connected Component) 강한 연결 요소 (Strongly Connected Component)는 SCC라고 불리는 알고리즘 입니다. 유향 그래프에서 특정 노드에서 다른 노드들을 걸쳐 다시 특정노드로 돌아올 수 있으면, 노드들이 강하게 연결되어 있다 라고 합니다. DFS를 배우셨다면, 조금 쉽게 이해하실 수 있을거 같습니다. ex) https://www.acmicpc.net/problem/26146 26146번: 즉흥 여행 (Easy) 1번 정점에서 출발하면 모든 정점을 방문할 수 있는 경로가 존재하지만, 2번 정점에서 출발하면 모든 정점을 방문할 수 있는 경로가 존재하지 않으므로, 답은 No가 된다. www.acmicpc.net 1에서 2를 걸쳐 3으로 갔다가 다시 1로 돌아올 수 있음, 1에서 4로 갔다가 다시 돌아올 수 있.. 2023. 1. 26.
proxy와 비동기 메이플스토리 api를 활용하여 프로젝트를 준비하고 있던 도중, 문제가 발생하면서 해당 문제를 해결하면서 알게된 React.js에 대해서와 Proxy에 대해서 정리해봤습니다. ※ 프론트를 주로 하는게 아니다 보니 의미만 이해해주시면 감사합니다. 메이플스토리 api를 활용해서 데이터를 긁어오고자 하였으나, CORS오류가 발생하였습니다. 제가 개발하는 서버의 주소는 localhost:3000인데, 메이플스토리 api의 첫 주소는 public.api.nexon.com 이였습니다. 그러다보니 CORS오류가 발생하여 해결방안을 찾아보다가 Proxy에 대해 알게 되었습니다. const submitData = (e) => { e.preventDefault(); fetch( "https://public.api.nexon.. 2023. 1. 25.
백트래킹(Backtracking) 백트래킹(Backtracking)은 답을 찾아가는 도중, 정답이 아닐거 같으면 뒤로 돌아가서 다시 답을 찾아가는 과정을 통해 해답을 구하는 방식의 알고리즘입니다. DFS을 알고 있다면, 이해하기 쉽습니다. DFS : 1번 방문한 곳은 다시 방문하지 못한다. 백트래킹 : 1군데를 여러번 방문할 수 있다. ex) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import java.io.BufferedReader; import java.io.IO.. 2023. 1. 25.
SPFA(Shortest Path First Algorithm) SPFA(Shortest Path First Algorithm) 알고리즘은 "음수 간선을 포함한 데이크스트라 알고리즘"으로 이해하면 편한 "벨만 포드 알고리즘"을 개선한 알고리즘 입니다. BFS - 데이크스트라 - 벨만포드(SPFA)로 학습을 진행하시면 편합니다. 벨만 포드는 "모든 간선에 대해 업데이트를 진행"하지만, SPFA는 "바뀐 정점과 연결된 간선에 대해서만 업데이트를 진행"합니다. 벨만포드를 학습하지 않고, SPFA를 학습하셔도 태그로 벨만포드가 들어간 문제를 대부분 해결하실 수 있습니다. ex) https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주.. 2023. 1. 24.
Dijkstra - 데이크스트라(다익스트라) 데이크스트라(Dijkstra)는 BFS 알고리즘을 알고 있다면 조금 더 쉽게 이해할 수 있다. 시작 지점 부터 가고자하는 도착지점까지 최소한의 시간으로 도착할 수 있는 거리를 구하는 알고리즘이다. ex)https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 예제 입력은 1번에서 출발하여 5번까지 도착하는데 걸리는 최소 시간을 구하는 문제입니다. 1 -> 4 -> 5을 이동하게 된다면 1 + 3 = 4의 시간이 걸리게 .. 2023. 1. 22.
BFS - 너비 우선 탐색 / DFS - 깊이 우선 탐색 너비 우선 탐색(Breadth First Search) / DFS(Depth First Search)은 시작지점부터 갈 수 있는 지점들을 들리면서, 더이상 갈 곳이 없을때까지 반복한 후 종료한다. ex) https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 해당 문제는 이런 모양의 간선과 노드들로 이루어져 있습니다. 1번 컴퓨터에 바이러스가 걸리게 된다면, 1과 2, 3, 5, 6 총 4개의 컴퓨터가 1번 컴퓨터에 의해 바이러스에 감염되면서, 5개의 컴퓨.. 2023. 1. 22.
백준 랭킹 1페이지 달성! 2023 / 01 / 03 2022년 목표였으나 미뤄져 2023년 목표 중 하나인 랭킹 1페이지를 달성했습니다. 2513문제로 100등을 달성하였습니다. 오늘 하루동안 26문제를 해결하였고, https://www.acmicpc.net/problem/25822 요기 나오는 24문제의 기준점을 넘어버렸습니다! 25822번: 2000문제 푼 임스 이 문제는 문제 출제를 위해 꾸준히 문제를 풀어 2000문제 풀이를 달성한 임스가 처음으로 출제한 문제입니다. 임스는 문제 출제를 위해 매일 0 ~ 24문제를 풀었습니다. 임스가 스트릭을 끊기지 않 www.acmicpc.net solved.ac 현 상황 앞으로 랭킹을 빼앗기지 않는 이상 1문제씩만 풀면서 스트릭을 유지할거 같습니다. 2023. 1. 3.
728x90
반응형