분류 전체보기

    백준 15686 // 조합함수암기!

    백준 15686 // 조합함수암기!

    15686번: 치킨 배달 (acmicpc.net) 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net *로직 1. 완탐? 13C6 * 50 * 13 ok 2.for(13Cm) for (home) for(치킨) min갱신,ret갱신 * 조합핵심코드 /* * * 조합함수 암기 * * 결과 : idx 조합결과 * chichenList[0] -> [0,1] * chichenList[1] -> [0,2] * chichenList[2] -> [1,2] */ void combi(int start, vect..

    백준 1325 // 자식수찾기는 int dfs(ret=1, ret+=dfs)

    https://www.acmicpc.net/problem/1325 > n>>m ; for (int i = 0; i > a>>b; adj[b].push_back(a); } //디버깅 /*for (int i = 1; i

    백준 17298 // 짝짓기는 stack(push[idx]) / 막대그림을그려라

    백준 17298 // 짝짓기는 stack(push[idx]) / 막대그림을그려라

    17298번: 오큰수 (acmicpc.net) 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net * 행동영역 : 짝짓기는 stack stack에 인덱스를 저장하라. a[i] => 입력저장 while(top> n ; for (int i = 0; i > a[i]; while (s.size() && a[s.top()] < a[i]) //if가 아니라 while써야함 { ret[s.top()] = a[i]; s.pop(); } s.push(i); //idx를 스택에 push하라. } for (int ..

    백준 1068 // 2차원벡터선언법 / 트리문제는 root 1개만 남는상황 예외처리하라 / 리프노드 카운팅은 int dfs

    https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net * 2차원벡터선언법 vector adj[54]; * 극단적예외처리 0-1 트리에서, 1이 삭제되는경우 //정답 : 1이 나와야함(root가 리프노드) 모든인접노드에대해, 인접노드가 삭제예정이 아닐때만 자식으로인정. if(i!=del) child++; #include using namespace std; typedef long long int ll; int root, n, t, del, v[5..

    백준 2636 // dfs는 방문처리먼저 해라/ 치즈는 dfs

    2636번: 치즈 (acmicpc.net) 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 000000 001110 000000 일때, (0,0)부터 탐색하면서, 1이면 탐색중지하면(return) 치즈 자동 구현됨. * 의사코드 1. dfs(0,0) 2.if(1) -> v.push, return //1이면 삭제후보에넣고, 탐색종료 - 무한루프 dfs(0,0) 3.모두0 -> 프린트(시간, 직전v의크기), 루프탈출 4.아님->삭제후보들=0, 무한루프 #include using namespace std; typedef long lo..

    백준 14502 // 3중반복문 ijk=>조합구현, a조작할필요없음(!v만으로 안전지역)

    14502번: 연구소 (acmicpc.net) 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net a[][]=1 벽세우기 바이러스퍼뜨르기(for'2' dfs visit[there]=1), 안전지역세기(a==0 and virus_not_visit) a[][]=0 벽초기화 ...반복 #include using namespace std; typedef long long int ll; int n,m,t,ret,a[10][10],v[10][10]; vector vir,w; int dy[] = {1,0,-1,0}; int dx[] = {..

    백준 4949 // 공백포함 한줄입력은 getline(cin,str), 괄호체크 algoritm

    4949번: 균형잡힌 세상 (acmicpc.net) 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 마지막끝은 문자열이 "."이면 진짜끝이다. " ."은 끝이아님. #include using namespace std; typedef long long int ll; int t; char c; stack s; string str; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); while (true) { ge..

    백준 9012 //괄호검사는 stack

    9012번: 괄호 (acmicpc.net) 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net '(' ')'만 검사함에 주의 ')' '('는 틀린것임. #include using namespace std; typedef long long int ll; int t; char c; stack s; string str; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); cin >> t; while (t--)..