디자인 패턴  - <전략 패턴> (Strategy Pattern)
프로그래밍 공부/디자인 패턴2022. 11. 14. 01:18디자인 패턴 - <전략 패턴> (Strategy Pattern)

프로그래밍을 시작한지 일년도 넘지 않았지만 처음과 조금 달라진점이 있다면 처음에는 기능 구현조차 버거우니 하드 코딩을 하고 구현을 중심으로 코딩을 했다. 요즘은 머리로 구조나 시스템을 나름 '생각'은 해본다는것이 달라진 것 같다. 하지만 생각만 한다고 해결책이 나오는 것은 아니다. 조금이라도 업무에 도움이 되기 위해서 오늘은 디자인 패턴중에 전략 패턴을 공부해봤다. 단순히 이론과 방법만 알면 이해가 잘 안되니 책에서 본대로 정리를 해봤다. 강아지 시뮬레이션 게임 회사의 개발자 JW - 슈퍼 클래스 Dog - JW가 다니는 회사의 게임인 강아지 시뮬레이션 게임은 여러 종의 강아지를 선택해서 플레이 할 수 있습니다. - JW는 'Dog' 라는 추상 클래스를 만들고, 여러 유형의 강아지를 표현할 수 있는 클래..

백준 10026번 - 적록색약
프로그래밍 공부/코딩테스트 준비2022. 9. 25. 21:51백준 10026번 - 적록색약

10026번: 적록색약 (acmicpc.net) 크기가 N x N인 그리드 안에서 구역이 몇개있는지 찾는 문제다. 근데 일반사람이 인식하는 구역과 'R'과 'G'가 똑같이 보이는 적록색약을 가진 사람이 보는 구역 둘 다 출력해야한다. #include #include #include using namespace std; string Grid[100]; bool Color[100][100]; bool NoColor[100][100]; int dx[4] = {1,-1,0,0}; int dy[4] = {0,0,1,-1}; int n; int cnt; int main() { ios::sync_with_stdio(0); cin.tie(0); stack S; cin >> n; for (int i = 0; i < n;..

백준 7562번 - 나이트의 이동
프로그래밍 공부/코딩테스트 준비2022. 9. 25. 20:39백준 7562번 - 나이트의 이동

7562번: 나이트의 이동 (acmicpc.net) 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 체스판에서 나이트가 갈 수 있는 위치는 8곳이다. 첫 줄에 테스트 케이스의 수가 주어지고 , 테스트 케이스마다 나이트의 현재위치에서 이동 할 칸까지 최소 몇번만에 갈수있는지를 출력하면 된다. #include #include #include using namespace std; //거리를 담을 배열 int dist[300][300]; //상하 좌우 탐색을 도와주는 배열 int dx[8] = { -2,-2,2,2,-..

백준 1012번 - 유기농 배추
프로그래밍 공부/코딩테스트 준비2022. 9. 25. 18:04백준 1012번 - 유기농 배추

1012번: 유기농 배추 (acmicpc.net) 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 한나는 배추 농사를 하는데, 농약을 쓰지 않고 배추를 잘 재배하기 위해서는 해충으로 부터 배추를 보호해야한다. 배추흰지렁이가 해충을 잡아먹기 때문에 해충으로부터 배추를 도와주는데, 이 해충은 상하좌우 네방향에 다른 배추가 있으면 이동을할 수 있다. 하지만 안타깝게도 한나의 밭은 고르지 못해서 배추가 군데군데 심어져있는데 .. 이 배추들을 해충으로부터 보호하기위해 필요한 배추흰지렁이의 최소의 수를 출력하는 문제다. #inclu..

백준 1697번 - 숨바꼭질
프로그래밍 공부/코딩테스트 준비2022. 9. 24. 13:52백준 1697번 - 숨바꼭질

수빈이와 동생이 숨바꼭질을 한다. 수빈이는 1초에 X-1 , X+1의 위치로 이동할 수 있고, 심지어 1초만에 2*X의 위치로도 이동이 가능하다 ㄷㄷ 입력으로 수빈이의 위치와 동생의 위치가 주어지는데, 수빈이가 몇 초 만에 동생을 잡을 수 있을지 출력하는 문제다. #include #include #include using namespace std; //숨바꼭질 할 배열 int Spot[100001]; //수빈이 위치 int n; //동생 위치 int k; int dx[3] = { -1,1,2 }; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> k; //수빈이와 동생의 위치가 같으면 0 출력 후 리턴 if (n == k) { cout 1000..

백준 4179번 - 불!
프로그래밍 공부/코딩테스트 준비2022. 9. 24. 04:07백준 4179번 - 불!

4179번: 불! (acmicpc.net) 미로에서 일하는 지훈이에게 미로에 불이나는 상황이 발생한다. 입력 첫줄에 미로의 행(R) / 미로의 열 (C) 가 주어진다. ' # ' - 벽 ' . ' - 지나갈 수 있는 공간 ' J ' - 지훈이의 초기 위치 ' F ' - 불이 난 공간 불은 매 분마다 한칸씩 네 방향(상,하,좌,우)으로 확산되며, 지훈이와 붙은 벽을 통과하지 못한다. 지훈이가 탈출 가능하다면 가장 빠른 탈출시간을, 탈출을 못하고 타죽는다면 IMPOSSIBLE을 출력하면 된다. #include #include #include using namespace std; //미로 string maze[1001]; //불이 옮겨가는 시간 int Ftime[1001][1001]; //지훈이가 이동하는 시..

image