전체 글86 [C++]백준(BOJ) - 2660 회장뽑기(플로이드-와샬) 난이도 : 골V알고리즘 유형 : 플로이드-와샬, bfs풀이 방법 : 3중 for문(플로이드-와샬) 문제 링크https://www.acmicpc.net/problem/2660 문제의 예시월드컵 축구의 응원을 위한 모임에서 회장을 선출하려고 한다. 몇 사람을 통하면 모두가 서로 알 수 있다. -> 모두 연결되어있음 가까운 정도에 따라 점수를 받게 된다.회장은 회원들 중에서 점수가 가장 작은 사람이 된다. -> 거리에 따른 정답 A와 B가 친구면, 1점A와 B가 친구고 B와 C가 친구면 A는 2점이렇게 점수를 계산해 두루두루 친한 사람들 회장으로 뽑는 문제입니다. -> 최단 거리라는 것을 알 수 있고, 모두 계산하기 때문에 플로이드로 풀 수 있다. -> 여기서 양방향 그래프라는 것도 알 수 있다. (B, .. 2024. 10. 30. [C++]백준(BOJ) - 1389 케빈 베이컨의 6단계 법칙(플로이드-와샬) 난이도 : 실I알고리즘 유형 : 플로이드-와샬, bfs풀이 방법 : 3중 for문(플로이드-와샬) 문제 링크https://www.acmicpc.net/problem/1389 문제의 예시케빈 베이컨 게임은 임의의 두 사람이 최소 몇 단계 만에 이어질 수 있는지 계산하는 게임이다. A와 B가 친구이면, B와 A도 친구이며, A와 B가 같은 경우는 없다.-> 양방향 그래프 친구 관계는 중복되어 들어올 수도 있으며, 친구가 한 명도 없는 사람은 없다. 모든 사람은 친구 관계로 연결되어져 있다.-> 친구는 모두 연결되어있다는 증거 사람의 번호는 1부터 N까지이며, 두 사람이 같은 번호를 갖는 경우는 없다.-> 1-based index의 풀이 방식 유효 n = 5 기준1의 경로 -> 2+1+1+2 = 62의 경.. 2024. 10. 29. [C++]백준(BOJ) - 11403 경로 찾기(플로이드-와샬) 난이도 : 실I알고리즘 유형 : 플로이드-와샬풀이 방법 : 3중 for문 문제 링크https://www.acmicpc.net/problem/11403 이 문제는 플로이드-와샬의 기본 문제이며, 입력에 인접 행렬이 주어지고 최단경로는 구하는 문제입니다.그리고 N이 100이 최대라는 점에서 인접 행렬 + 최단경로 = 플로이드 라는 것을 알 수 있습니다. 플로이드는 3중 for문으로 만들었으며 주의 사항은 최단경로이기 때문에 경로가 없는 지점은 0이 아닌 최대값을 넣어야합니다. 저같은 경우는 0x3f3f3f3f + 0x3f3f3f3f 가 overflow가 발생하지 않도록 최대값을 넣어주었습니다. #include using namespace std;int n;const int inf = 0x3f3f3f3f;.. 2024. 10. 28. [C++]백준(BOJ) - 16235 나무 재태크(deque) 난이도 : 골III알고리즘 유형 : 구현, 자료 구조, 시뮬레이션풀이 방법 : 구현, deque 문제 링크https://www.acmicpc.net/problem/16235 이 문제는 사계절의 구현을 논리적으로 생각해야하는 문제입니다.사계절을 비로소 논리대로 구현해야 디버깅과 반례도 수월하게 작성할 수 있기 때문이죠. 일단 논리를 세우기 전에 문제를 요약해보겠습니다. (시작 시 조심해야 할 사항)1. 처음 영토 안의 양분은 5로 고정되어있다.2. 같은 좌표내에 여러 개의 나무가 있을 수 있다.3. 하나의 칸에 여러 개의 나무가 있다면 나이가 어린 나무부터 자신의 나이만큼 양분을 먹는다. 땅에 나이만큼의 양분이 부족하다면? 그 나무는 죽는다. (계절 별 요약)1. 봄 : 나무가 자신의 영토 안에.. 2024. 9. 21. [C++]백준(BOJ) - 14891 톱니바퀴(백트래킹 풀이) 난이도 : 골V알고리즘 유형 : 구현, 시뮬레이션풀이 방법 : 구현(백트래킹) 문제 링크https://www.acmicpc.net/problem/14891 이 문제는 시뮬레이션 문제로 구현을 요하는 문제입니다.그림이 있는 문제는 어렵게 생각하지 마시고 일단 그림을 봅니다.(문제 링크에 그림이 있습니다.) 문제를 보면 어떻게 회전할 지, 어떤 것을 회전시켜야 하는 지를 이해하셨겠지만 요약하자면, 1. 어떤 톱니바퀴를 굴릴 지 확인2. 택해진 톱니바퀴를 굴림3. 서로 붙어있는 톱니바퀴의 극들이 서로 다른 극이면 옆에 있는 톱니바퀴도 굴릴 준비를 함.4. 1번으로 이동 이후 이후 굴릴 수 있는 톱니바퀴를 확인했다면, 한꺼번에 톱니바퀴를 돌려줍니다.(이 때 따로따로 돌린다면 틀렸습니다! 가 나오기 때문에 조심.. 2024. 9. 16. Design Pattern(3-1) 관찰자 패턴(Observer) 원리 개요 관찰자 패턴은 GoF 패턴 중에서도 가장 널리 사용되고 현재 게임엔진에서는 관찰자 패턴으로 다양한 기능들을 제공해주고 있습니다. 관찰자 패턴을 알아보기 전에 관찰자 패턴을 이용한 MVC 패턴에 대해 알아보겠습니다. MVC(Model-View-Controller) 패턴은 소프트웨어 디자인 패턴 중 하나로, 프로그램을 세 가지 주요 구성 요소로 나눕니다. 모델(Model), 뷰(View), 컨트롤러(Controller). 이를 통해 코드의 재사용성과 유지보수성을 높이며, 역할과 책임을 분리하고, 이러한 MVC 패턴은 정말 많이 사용됩니다. 게임에서의 MVC 패턴의 예를 들자면, 플레이어가 포션을 클릭합니다. Cotroller가 클릭 이벤트를 처리합니다. 이후 요청된 Controller에 이벤트를 처리.. 2024. 8. 5. 이전 1 ··· 6 7 8 9 10 11 12 ··· 15 다음