전체 글 (168) 썸네일형 리스트형 설계 입력 위치만 받고 map을 다른 값으로 변경할지 결정(아기상어 -> 0) 템플릿 조합 사용 전 점층 여부 판단 탐색 자원 설정(visited) 전 점층 여부 판단 점층이면 bool로 선언, visited 처리 후 복구 점층이면 int로 선언, 탐색 호출시마다 ++v visited 항상 1부터 시작하는 v와 함께 사용하기! IN 체크 생활화 -> 배열 값 판단하는 모든 부분에 들어가야! 코어 연산자 비교 연산자 != 사용할 때 모든 가능성 따지기 비트 연산자 비트연산자 괄호 씌우기(우선순위 때문) 범위 인덱스 1부터 시작할 경우 각종 범위 지정 상하한 조절할 것(e.g. max_element) 라이브러리 algorithm max_elemnt: 범위가 0이어도 범위의 첫번째 원소를 반환 -> 범위가 0일수도.. 백준 17244 아맞다우산 문제: 17244번: 아맞다우산 경재씨는 저녁 약속을 가기 전 챙기지 않은 물건들이 있는 지 확인하고 있다. 필요한 물건은 전부 챙긴 것 같았고 외출 후 돌아오는 길에 경재씨는 외쳤다. "아 맞다 우산!!!" 경재 씨는 매번 외출하고 나서야 어떤 물건을 집에 놓고 왔다는 것을 떠올릴 때마다 자책감에 시달리는 것이 너무 싫었다. 외출이 잦은 경재 씨는 반복되는 일을 근절하기 위해 꼭 챙겨야 할 물건들을 정리해보았다. 하지만 지갑, 스마트폰, 우산, 차 키, 이어폰, 시계, 보조 배터리 등 www.acmicpc.net 설계: 모든 물건들을 방문할 때까지 BFS vs 물건들의 순열에 대해 BFS 둘을 놓고 고민하다가 후자를 선택했다. 물건들의 순열에 대해 BFS 순열에서 이웃한 쌍의 물건 중 전자를 sourc.. SWEA 2383 점심 식사시간 코드: /* 1. 바로 다음(next(it))이 아니라 this trhead보다 큰 tm 필드를 지니는 thread 선택해야 */ #include #include #include #include using namespace std; vector hm; vector ext; vector extn; bool cbn[10]; int ans; struct thrd { int tm; bool job; int hmn; bool wait; }; struct oprt { bool operator()(const thrd &a, const thrd &b) const { if (a.tm == b.tm) { if (a.job == b.job) { return a.hmn b.job.. 백준 16235 나무 재테크 문제: 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 떨어진 칸의 개수, c는 가장 왼쪽으로부터 떨어진 칸의 개수이다. r과 c는 1부터 시작한다. 상도는 전자통신공학과 출신답게 땅의 양분을 조사하는 로봇 S2D2를 만들었다. S2D2는 1×1 크기의 칸에 들어있는 양분을 조사해 상도에게 전송하고, 모든 www.acmicpc.net 설계: 스케쥴러 유형에서 자주 사용하는 list를 사용하려 했으나 결과는 런타임 에러, 시간초과 multiset 역시 시간 초과 deque로 구현, 76ms 소요: /* 1. 좌표 1부터 시작.. 패인 곱씹으면서 의미 되돌아보고, 실수 잡아내기 당황해서 deviate하지 말기 SWEA 1949 등산로 조성 코드: /* 1. visited 값을 v로 설정했으면 not visited는 !vst[nr][nc]가 아니라 vst[nr][nc] != v */ /* 2. 깎는 건 한 번만 */ /* 3. 전역 변수 초기화 */ /* 4. 깎는 횟수만큼 재방문 가능해야 하므로 재방문 허용 */ #include #include #include using namespace std; int T; int N, K; int map[8][8]; bool vst[8][8]; int ans; const int dr[] = { -1, 0, 1, 0 }; const int dc[] = { 0, 1, 0, -1 }; #define IN(r, c) (0 > T; for (int t = 1; t > N >> K; int pkh = 0; vec.. 탐색 - visited variation 문제 번호는 문제 링크, 제목은 풀이 링크 search - visited visited가 필요하지 않은 경우 한 방향으로만 탐색해서 왔던 길을 되돌아갈 수 없는 경우 백준 17070 파이프 옮기기 1 SWEA 1949 등산로 조성 작은 visited만 필요한 경우 SWEA 1949 등산로 조성 (높이 9) 큰 visited가 필요한 경우 -> representation, 자료구조 고민 백준 1525 퍼즐 visited 추가 차원이 필요할 경우 BFS(최소 거리) : 첫번째 방문한 자손만 유효하기 때문에 자손간 visited 공유 가능 특정 지점 N개에서 탐색 조건이 바뀌는 경우([1>>N]) 백준 1194 달이 차오른다, 가자 (열쇠 획득 전후 상응하는 문을 향하는 것은 다른 의미) 백준 17244 아맞.. SWEA 2117 홈 방범 서비스 코드: /* 1. 좌표 행열 상한 모두 N */ /* 2. 전역변수 초기화 */ /* 3. 안 돌아가는 TC 파악하기 같은 특성의 작은 TC 만들어서 해보는 것도 중요 */ /* 4. 정답 판별 중간에만 하지 말고 끝에도 해줄 것 */ #include #include using namespace std; int T; int N, M; bool map[20][20]; int vst[20][20]; int v = 1; int ans; int dn[] = { -1, 0, 1, 0 }; int dm[] = { 0, 1, 0, -1 }; #define IN(n, m) (0 > T; for (int t = 1; t > N >> M; for (int n = 0; n < N; ++n) { for (int m = 0; .. 이전 1 ··· 8 9 10 11 12 13 14 ··· 21 다음