본문 바로가기
[BOJ 15686] 치킨 배달 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 www.acmicpc.net 처음으로 1시간 내에 문제를 풀어봤다 ㅠ0ㅠ 삼성에 여러번 기출로 등장한 DFS 문제라서 쉽게 풀 수 있었다. 문제 분류는 브루트 포.. 2019. 4. 13.
[BOJ14889] 스타트와 링크 완전탐색 문제로 모든 경우의 수를 다 고려해야 하는 문제 두 팀의 능력치 차이만 구하면 되므로, 첫번째 사람은 무조건 스타트 팀에 속한다고 가정하고 2~N번째 사람을 DFS를 돌려서 답을 구할 수 있다 teamA(직관적이지 못한 변수명이다ㅠㅠ) 배열의 각 요소를 해당 사람이 A팀에 속했는지 여부라고 둘 수 있다. 만약 세 사람이 있다고 하면(| 아래는 각각의 상태에서 다시 DFS로 탐색할 경우) (0)() | (01)(), (02)(), (03)() | (012)(), (013)(), (014)() ... 같은 라인에서는 for문을 사용해서 한 명씩 할당한다. 할당한 다음에는 다시 탐색을 시작해 다음 사람을 정하고 정확히 인원수의 절반을 A팀에 할당했다면 능력치 합을 구하는 base case로 넘어가도록.. 2019. 3. 28.
[BOJ13460] 구슬 탈출 2 문제 링크 : https://www.acmicpc.net/problem/13460 남들은 다 BFS로 풀었는데 나혼자 삽질하면서 DFS로 풀었다. 덕분에 메모리도 메모리대로, 시간복잡도도 시간복잡도대로 잡아먹었지만 풀긴 풀었으니ㅠㅠㅠㅠㅠㅠㅠㅠ 익숙해지면 더 빨리 풀 수 있을 거라 믿는다(제발...ㅠ)다음에 시간이 되면 BFS로도 짜봐야겠다 map이라는 객체를 생성한 다음 구슬을 한 칸 한 칸 굴려가면서 골인 지점에 도달했는지 확인하도록 코드를 작성했고 O R B 순서대로 있는 경우 성공, O B R 순서대로 있는 경우 실패라는 걸 염두에 두고 코드를 작성해야 한다! 이걸 모르고 그냥 둘 다 같은 행동 내에 떨어지면 실패라고 생각해서 초반에 삽질을 엄청 했다 개인적으로 이 문제에서 주의해야 할 건 각 ti.. 2019. 3. 21.