반응형 코딩53 디자인패턴 - 전략 패턴 전략 패턴이란?동일한 문제를 해결하는 여러 알고리즘을 사용하는 객체가 실행 중에 알고리즘을 바꿀 수 있도록 하는 패턴입니다. 즉, 알고리즘을 객체로 캡슐화하고, 이를 동적으로 교체하는 방식입니다.사실 디자인 패턴이라는 말이 거창하지, 아마 예시만 봐도 아무 생각 없이 이렇게 사용하고 있었을 확률이 높다고 생각되는 패턴입니다.사용 예시대표적인 예시로는 게임에서의 "스킬 시스템"이 있습니다. 게임에서 각기 다른 스킬들을 Skill 클래스를 상속받은 다양한 클래스들로 정의하고, 각 클래스에서 StartSkill() 메서드를 오버라이드하여 스킬의 구체적인 동작을 구현합니다.이후, 스킬을 실행해야 할 상황에서는 Skill 타입의 변수로 정의한 후, StartSkill()을 실행시키면, 실제로 어떤 클래스인지에 따.. 2025. 2. 28. 백준 13549번 - 숨바꼭질 3 (C++) 해결 방법BFS를 사용해 풀이.다만 최적화를 진행해주지 않으면 1회전당 3배수씩 큐의 크기가 어마무시하게 늘어나기 때문에 매 위치마다의 최고기록을 저장해두고, 해당 기록보다 더 큰 시간이 들어오면 더이상 진행하지 못하는 식의 약간의 최적화를 추가하였다. (안하면 큐가 너무 커져서 메모리 초과남)아쉬웠던 점골드 5를 보고 너무 날먹하려는 생각에 최적화를 하나도 진행하지 않고 했다가 메모리 초과를 너무 많이 봤다...사실 문제를 맞추는것보단 결국 더 높은 레벨 풀기 위해서는 효율적으로 푸는게 중요한데 스스로 반성합니다....코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include io.. 2025. 1. 15. 백준 1753번 - 최단경로 (C++) 해결 방법다익스트라 문제.시작 간선부터 시작해서, 내가 갈 수 있는 모든 지점의 최단거리를 기록해두고우선순위 큐를 사용하여 그중 가장 낮은 지점부터 다시 모든 지점의 최단거리 기록을 반복한다.+번외로 처음 입력받을 때, 출발지 목적지가 같은 가중치만 다른 간선이 여러개가 입력될 수 있어 최적화를 위해 이건 가장 짧은 간선 하나만 받아올 수 있도록 했다.아쉬웠던 점우선순위 큐의 존재를 모르고 일반 큐로 최소값 찾고 하면서 했다가 시간초과 나서 우선순위 큐는 검색을 통해 알게 되었다. 번외로, 기본적으로 우선순위 큐의 정렬은 오름차순인데 이걸 내림차순으로 변경하기 위해 자료형을 지정해주는게 참 괴상하게 생긴듯.코드12345678910111213141516171819202122232425262728293031.. 2025. 1. 9. 백준 1149번 - RGB거리 (C++) 해결 방법DP문제.n*3 크기의 dp에 현재 수와, 그 이전까지 의 합(dp)를 더해서 최대값을 찾아 저장한다.이후 가장 마지막 줄의 3칸중 가장 낮은 값이 정답.코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include iostream>using namespace std; int dp[3][1001];int rgb[3][1001]; int GetMin(int a, int b){ if(a==0) return b; if(b==0) return a; return a > b ? b : a;} int.. 2025. 1. 8. 이전 1 2 3 4 ··· 14 다음 반응형