반응형
반응형
출처 : KOI 1996 초등부 1번 알고리즘 : Flood Fill 풀이 Flood Fill 알고리즘을 그 이상 그 이하도 아니다. 알고리즘만 알면 간단히 풀 수 있다. 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 #include #include #include using namespace std; vector ans; int in[27][27]; int check[26][26]; int dir[4][2]={{0,1}, {0,-1}, {1,0}, {-1,0}}; int fill(int a, int b){ int c..
출처 2004 전국 본선 초등3 힌트 단순 탐색 풀이 양방향 그래프를 만들어 준 뒤, 연결 되어 있는 컴퓨터들을 찾아가면 됩니다. 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 #include using namespace std; int com[101][101]; int check[101]; int ans=-1; int v,e; void dfs(int n){ check[n]=1; ans++; for(int i=1;i>v>>e; for(int i=0;i>a>>b; com[a][b]=1; com[b][a]=1; } int n; dfs(1); cout
알고리즘 위상정렬 풀이 위상정렬을 하 되, 우선순위가 같은 경우 작은 숫자부터 출력해야 하기 때문에 한번의 시행이 끝날 때 마다 다음 시행할 '한 개'의 숫자를 Queue에 넣어준다. ( 이런 우선순위 조건이 없을 경우엔 간선이 지워지는 노드들만 확인 하면 된다. ) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include#include#include#includeusing namespace std; queue q;queue ans;vector vec[201]; int ind[201]; int main(){ int v,n; cin>..
알고리즘 Flood Fill 풀이 주어지는 X, Y 좌표가 Zero base이기 때문에 Zero base로 짜는 것이 편하다. '_' (빈칸) 과 '*'(채워진 칸)을 0, 1으로 대응시키면 조건 처리를 할 때 더욱 편리하게 할 수 있다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#includeusing namespace std; int in[10][10];int dir[4][2]={{1,0}, {0,1}, {-1,0}, {0,-1}}; void print(){ for(int i=0;i
알고리즘 Flood Fill 풀이 문제 그대로 같은 색으로 이어진 칸들의 갯수를 세면 된다. 배열 범위를 벗어나는지 좀 더 편리하게 체크하기위해서 배열의 크기를 9*9로 잡아 주었다. 입력값에 0이 없기 때문에 in[i][j]가 0이라면 배열의 범위를 벗어난 것으로 확인할 수 있다. 123456789101112131415161718192021222324252627282930313233343536373839404142#includeusing namespace std; int in[9][9];int check[8][8]; // 한번 방문했던 곳 체크 int dir[4][2]={{1,0}, {0,1}, {-1,0}, {0,-1}}; // 방향배열 int ans; int search(int a,int b){ /..
출처 2011 지역본선 초등2 문제 주소 백준 2457번 공주님의 정원 2457번: 공주님의 정원 첫째 줄에는 꽃들의 총 개수 N (1a>>b>>c>>d; in[i].start=a*100+b; in[i].end=c*100+d; } sort(in,in+n,cmp); int now=301,ans=0,index,max=0; for(int i=0;i1130) break; // 오늘(now)을 포함하는 꽃들 중 가장 오래 심을 수 있는 꽃을 찾는다. if(max
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.