Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 너비 우선 탐색
- 일본 여행
- DP
- 후쿠오카 요도바시 하카타
- brute force
- 시뮬레이션
- 삼성시험
- deque
- queue
- 후쿠오카 4박 5일
- 후쿠오카
- 완전 탐색
- 미로찾기
- 알고리즘
- dfs
- BOJ
- 플로이드 와샬
- 다이나믹 프로그래밍
- 완전탐색
- 큐
- 삼성테스트
- 깊이 우선 탐색
- IOS
- 후쿠오카 여행경비
- 후쿠오카 캐널시티
- 백준
- 플로이드
- 하카타역
- BFS
- 삼성 SW 테스트
Archives
- Today
- Total
맛있는감귤
BOJ : 1063 킹 본문
문제 : https://www.acmicpc.net/problem/1063
이동하라는대로 이동시키고
1. 킹 이동
2. 킹이 맵을 벗어남?
3. 안 벗어나면 돌맹이와 겹침?
4. 겹쳐서 돌맹이 이동시키는데 맵 벗어남?
5. 벗어나면 킹 원위치
반복
하면 된다.
알파벳+숫자가 열행이기 때문에 순서 주의
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | #include <iostream> #include <string> using namespace std; int kr,kc,sr,sc; int N; bool cmp(int kr, int kc, int sr, int sc){ if(kr==sr && kc==sc) return true; return false; } bool isOut(int r, int c){ if(r < 1 || c < 1 || r > 8 || c > 8) return true; return false; } int main(){ char c; scanf(" %c",&c); kc=c-'A'+1; scanf("%d",&kr); scanf(" %c",&c); sc=c-'A'+1; scanf("%d",&sr); scanf("%d",&N); while(N--){ string s; cin>>s; if(s=="R") { if(!isOut(kr, kc+1)) { kc++; if(cmp(kr, kc, sr, sc)){ if(!isOut(sr, sc+1)) sc++; else kc--; } } } else if(s=="L") { if(!isOut(kr, kc-1)) { kc--; if(cmp(kr, kc, sr, sc)){ if(!isOut(sr, sc-1)) sc--; else kc++; } } } else if(s=="B") { if(!isOut(kr-1, kc)) { kr--; if(cmp(kr, kc, sr, sc)){ if(!isOut(sr-1, sc)) sr--; else kr++; } } } else if(s=="T") { if(!isOut(kr+1, kc)) { kr++; if(cmp(kr, kc, sr, sc)){ if(!isOut(sr+1, sc)) sr++; else kr--; } } } else if(s=="RT") { if(!isOut(kr+1, kc+1)) { kr++, kc++; if(cmp(kr, kc, sr, sc)){ if(!isOut(sr+1, sc+1)) sr++,sc++; else kr--, kc--; } } } else if(s=="LT") { if(!isOut(kr+1, kc-1)) { kr++, kc--; if(cmp(kr, kc, sr, sc)){ if(!isOut(sr+1, sc-1)) sr++,sc--; else kr--, kc++; } } } else if(s=="RB") { if(!isOut(kr-1, kc+1)) { kr--, kc++; if(cmp(kr, kc, sr, sc)){ if(!isOut(sr-1, sc+1)) sr--, sc++; else kr++, kc--; } } } else if(s=="LB") { if(!isOut(kr-1, kc-1)) { kr--, kc--; if(cmp(kr, kc, sr, sc)){ if(!isOut(sr-1, sc-1)) sr--, sc--; else kr++, kc++; } } } printf("%c%d %c%d\n",kc+'A'-1,kr,sc+'A'-1,sr); } printf("%c%d\n",kc+'A'-1,kr); printf("%c%d\n",sc+'A'-1,sr); } | cs |
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
BOJ : 2169 로봇 (0) | 2017.04.30 |
---|---|
BOJ : 1173 운동 (0) | 2017.04.29 |
BOJ : 1120 문자열 (0) | 2017.04.28 |
BOJ : 1526 가장 큰 금민수 (0) | 2017.04.28 |
BOJ : 1953 팀 배분 (2) | 2017.04.28 |