일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- SWEA
- 비트마스킹
- 플로이드 와샬
- 프로그래머스
- 백트래킹
- 이분탐색
- 2021 KAKAO BLIND RECRUITMENT
- 2020 KAKAO BLIND RECRUITMENT
- 백준
- 투 포인터
- 파이썬
- 시뮬레이션
- 트라이
- 구현
- 투포인터
- Spring
- 다익스트라
- 스택
- 최소 신장 트리
- 우선순위큐
- 2018 KAKAO BLIND RECRUITMENT
- 플로이드와샬
- 2020 카카오 인턴십
- GIT
- 조합
- 브루트포스
- 2019 KAKAO BLIND RECRUITMENT
- 크루스칼
- BFS
- 로봇 청소기
- Today
- Total
목sssssss록로봇 청소기 (2)
개발조아
문제 링크 : https://www.acmicpc.net/problem/4991 4991번: 로봇 청소기 각각의 테스트 케이스마다 더러운 칸을 모두 깨끗한 칸으로 바꾸는 이동 횟수의 최솟값을 한 줄에 하나씩 출력한다. 만약, 방문할 수 없는 더러운 칸이 존재하는 경우에는 -1을 출력한다. www.acmicpc.net 비트마스킹으로 해결한 문제이다. 예전에 풀었던건데 그때는 BFS+DFS로 풀었다. 이 방법은 느리다. 모든 시작점과 더러운칸에서 BFS를 진행하고 마지막에 DFS를 진행 했기 때문이다. 그때의 알고리즘은 아래 더보기를 누르면 된다. 더보기 시작점과 더러운칸에 0부터 번호를 매기고 start라는 배열에 번호를 저장했다. 그리고 start배열의 점에서 각각 BFS를 실행하여 각 점사이의 거리 최..
문제 링크 : https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 시뮬레이션 문제이다. 나는 큐를 이용하여 풀었다. 4방향 확인 중 이동할 곳이 있다면 현재 좌표를 수정한다. 만약 4방향 중 이동할 곳이 없다면 뒤로 이동하는데 벽이라면 답을 출력하고 끝내면 된다. from sys import stdin input = stdin.readline dx = [-1,0,1,0] dy = [0,1,0,-1] n,m = map(int, input().spl..