dfs
[백준]1743번 음식물 피하기 - Java
문제 https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 풀이 걍 흔한 dfs나 bfs 문제이다! 나는 dfs로 풀었음! 정답은 음식물 쓰레기의 최대 크기이므로 static 변수로 선언해서 dfs한번이 끝나면 음식물 쓰레기의 크기를 측정하여 최신화해주는 방식을 사용했다. 자세한건 주석으로! 코드 // 1743번 음식물 피하기 // https://www.acmicpc.net/problem/1743 packag..
[백준]11559번 Puyo Puyo - Java
문제 https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 풀이 처음에 어떻게 풀지 설계를 안하고 풀다보니까 중간에 한번 엎었다... 문제 좀 똑바로 읽고 풀자 쫌...!!!!! 쭈욱 돌면서 뿌요가 있으면 같은 색의 뿌요가 4개 이상 인접해있는지 dfs()로 판단하다가 4개가 넘어가면 그 위치에서 다시 dfsBomb()를 돌려서 연결되어 있는 뿌요를 다 없앰! 그리고 다른 색의 뿌요도 4개 이상이 인접해 있는 경우가 있으니까..
[백준]2606번 바이러스 - Java
문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 뭐 여러가지 방법을 풀 수 있겠지만 인접 행렬로 풀면 쓸데없는 메모리 활용이 좀 있을 것 같다. 그래서 ArrayList를 활용한 인접 리스트로 풀었음. 방문 체크 배열을 이용해서 이미 방문한 곳은 체크를 하고 인접한 애들 중 방문하지 않은 애들인 경우에만 answer++하고 dfs를 한번 더 탔음! 밑에 코드 참고! 코드 // 2606번 바이러스 // https://www.acmicpc.n..
[SWExpertAcademy]1949번 [모의 SW 역량테스트] 등산로 조성 - Java
문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 전형적인 삼성 기출 문제 중 하나인 것 같다. 최근에 삼성 기출 문제를 몇개 접했는데 다 너무 어려워서 손도 못대거나 못풀거나 했다. ㅠㅠㅠ 그래서 자신감도 없고 이런 문제만 보면 기가 죽었는데 최근에 풀었던 삼성 문제들 중에는 쉬운 편에 속하는 것 같아서 어찌저찌 풀었다. 문제에 조건들을 보면 숫자가 크지 않으므로 완전탐색이 가능하다는 것을 알 수 있고, 그냥 막 돌리면 되겠다 싶어서 ..
[백준]14502번 연구소 - Java
문제 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 풀이 허허,,, 풀긴 풀었는데 너무 더럽게 푼 것 같다,,, 느낌만 그런건가...?? 조합 + DFS로 풀었음! 중간에 막힌 부분이 있었는데 dfs돌려서 안전 영역 최대값을 조사한 후 map 배열을 초기화 해줄 때 초기화 시점이 헷갈려서 자꾸 벽을 하나도 안세울 때로 초기화를 해버려서 좀 시간이 걸렸다 ㅠㅠ 그래서 벽을 2개 세웠을 때의 map을 tempMap에 잠시 저장해놨다가 벽 3개 세우고 dfs돌..
[백준]14503번 로봇 청소기 - Java
문제 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 풀이 후,,, 나는 구현 문제가 왜 이렇게 어려운지 모르겠다 ㅠㅠㅠ 많이 풀어봐야 될 듯하다,, 음 뭐랄까 dfs인데 횟수 제한이 있는 dfs 문제?? 2a번 단계가 4번 연속으로 실행되면 멈추거나 후진해야되니까? 개인적으로 포인트는 1. 왼쪽으로 돌거나 뒤로 후진할 때의 방향 설정이랑 2. return을 해줘야하는 위치 라고 생각한다! 걔네들을 어떻게 했는지는 밑에 코드의 주석을 보면 알..
[백준]4963번 섬의 개수 - Java
문제 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 풀이 그냥 지금까지 많이 풀었던 탐색 문제이다. DFS로 풀었다. 음 뭐랄까 쉬워서 별로 할 말이 없다 https://seokmimmmmmmmm.tistory.com/42?category=1004588 [백준]2468번 안전 영역 - Java 문제 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서..