본문 바로가기

code

(114)
큐에 넣어 처리하기 큐에 넣어 확산시키기 유기농배추 치즈 큐에 넣어 이동하기 낚시왕
주의사항 변화량을 바로 적용할 수 있는가 변수의 범위가 변했을 때 loop header를 조정해주었는가
시간단축기법 BOJ 주사위 윷놀이 17825 한 번에 4개의 말을 모두 움직이면 중복되는 위치 조합이 여러개 발생 -> 4개 모두 선택 대신 기존말/ 새로운말 선택 여부 정하기 이동 과정을 삭제하고, 지점별로 주사위 눈금에 따른 다음 지점을 할당해 놓아 한번에 움직이기 BOJ
2중 브루트포스 BOJ 색종이 붙이기 SWEA 제주도 여행 계획
색종이 붙이기 /* 1. undo를 해주면 level 설정 필요 x */ #include #include #include using namespace std; bool map[10][10]; int dp[10][10]; bool row_of_ones[5] = { 1, 1, 1, 1, 1 }; bool row_of_zeros[5]; int one_ctr; unsigned ans = -1; int coverage[6] = { 0, 1, 4, 9, 16, 25 }; int paper_ctr[6]; int paper_ctr_max[] = { -1, 5, 5, 5, 4, 4 }; bool vst[10][10];/* 1 */ bool possible[6][10][10]; void bf(int rb, int cb, int tot_..
다차원배열 브루트포스 백준 17472 다리 만들기 2 // case 1: 이차원 배열 // 일반적인 순회 for(int r = 0; r < R; ++r) for(int c = 0; c < C; ++c) map[r][c] // 브루트포스 bf(int r, int c, int s){ if(s == SMAX){ return; } for(; r < R; ++r){ for(; c < C; ++c) S[s] = map[r][c]; bf(r, c + 1, s + 1); c = 0; } } // case 2: 인접행렬(undirected) // 일반적인 순회 for(int r = 0; r < R; ++r) for(int c = r + 1; c < C; ++c) map[r][c] // 브루트포스 bf(int r, int c, int s){ ..
백준 17472 다리 만들기 2 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net /* 1. 빈칸과 이웃한 경우 뿐만 아니라 경계에 해당하는 경우에도 boundary에 해당함 */ /* 2. 행과 열의 상한 다름 -> N M */ /* 3. 탈출조건은 b < bound[island_ctr]이 아니라 b < bound_ctr[i] */ /* 4. 가장 최근에 계산한 다리 길이가 아니라 가장 짧은 다리 길이로 갱신 */ /* 5. dfs로 네트워크형 그래프 연결여부 파악하려면 전역변수로 visited_vertices 선언하여 ..
백준 14497 주난의 난 14497번: 주난의 난(難) 주난이는 크게 화가 났다. 책상 서랍 안에 몰래 먹으려고 숨겨둔 초코바가 사라졌기 때문이다. 주난이는 미쳐 날뛰기 시작했다. 사실, 진짜로 뛰기 시작했다. ‘쿵... 쿵...’ 주난이는 점프의 파동으로 주변의 모든 친구들을 쓰러뜨리고(?) 누군가 훔쳐간 초코바를 찾으려고 한다. 주난이는 N*M크기의 학교 교실 어딘가에서 뛰기 시작했다. 주난이의 파동은 상하좌우 4방향으로 친구들을 쓰러뜨릴(?) 때 까지 계속해서 퍼져나간다. 다르게 표현해서, 한 번의 점프 www.acmicpc.net #include #include #include using namespace std; int N, M, X1, Y1, X2, Y2; string map[300]; queue q; bool vst..