Algorithm/boj
백준 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--)..
백준 2582 //시간문제는 초단위로 통일하라, string to int(stoi), %02d(0채우기,2칸)
2852번: NBA 농구 (acmicpc.net) 2852번: NBA 농구 첫째 줄에 골이 들어간 횟수 N(1 n; while (n--) { cin >> t >> s; t1 = s.substr(0, 2); t2 = s.substr(3, 5); int start = stoi(t1) * 60 + stoi(t2); for (int i = start; i b[i]) f[i] = 1; else if (a[i] < b[i]) f[i] = 2; } for (int i = 0; i < 48 * 60; ++i) { if (f[i] == 1)..
백준 3474 //idea를 위해 table을 그려라
3474번: 교수가 된 현우 (acmicpc.net) 3474번: 교수가 된 현우 첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1 > t; while (t--) { int ret2=0, ret5=0; cin >> a; for (int i = 2; i
백준 10709 //따닥따닥 입력받기 , 규칙발견, 구현
10709번: 기상캐스터 (acmicpc.net) 10709번: 기상캐스터 출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시 www.acmicpc.net * 따닥따닥 입력받기 1.문자열[index] cin >> s; for(int j = 0; j > s; for (int j = 0; j < x; ++j) { c = s.at(j); if (c == 'c') { a[i][j] = 1; v[i][..
백준 17071 //bfs, flood fill, 완탐x
17071번: 숨바꼭질 5 (acmicpc.net) 17071번: 숨바꼭질 5 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 500,000)에 있고, 동생은 점 K(0 ≤ K ≤ 500,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 문제1 : 0.25초 ->완탐불가능 해결 : 동생이방문할곳 방문됫는지 체크 -> 수빈이가 이미방문-> 수빈이는 2초간격으로 계속 머무르기 가능 -> 그 level(초)가 정답 if (v[level % 2][k]) { ok = 1; break; } 문제2 : x+-1로 인해 중복방문발생 해결:nx방문체크 -> 방문이면 continue; if (nx > 500000 || nxbr..