99클럽 코테 스터디 12일차 TIL (7569번: 토마토)
문제https://www.acmicpc.net/problem/7569 학습 키워드BFS 시도(시간 초과) 완전 탐색day를 1부터 H*N*M 까지 탐색하면서 모든 배열을 순회하면서 토마토를 익히고, 익은 개수를 센다.첫 째날부터 익은 토마토가 없다면 0을 반환한다.익은 토마토가 없다면 날짜를 출력한다. 이때, 배열에 0이 포함되어 있다면 -1을 출력하고, 아니라면 날짜를 출력한다.(성공) 익은 토마토를 기준으로 BFS값을 입력 받을 때, Queue에 익은 토마토의 위치를 추가한다. 이때, 현재 토마토가 익은 날짜가 언제인지 알 수 있는 값도 같이 추가한다.BFS 방식으로 Queue의 맨 앞 값(poll)을 빼내주면서하면서 익은 토마토 주변('앞', '뒤', '상', '하', '좌', '우')에 있는 익지..
2024. 11. 8.
99클럽 코테 스터디 6일차 TIL (2805번: 나무 자르기)
문제https://www.acmicpc.net/problem/2805학습 키워드이분 탐색 시도입력 제한 사항을 제대로 읽지 않고 풀어서 시간 초과 발생. 주어진 나무들의 높이 중 가장 큰 높이부터 1씩 줄여가면서 M을 만족하는 가장 높은 나무의 높이를 계산했다. 나무 높이의 최대값은 1,000,000,000이므로, 1초를 훨씬 넘는다. 처음에는 시간초과를 했을 때, 입력 값이 많아서 그런줄 알고 BufferedReader와 StringTokenizer를 사용해서 입력을 받았다. 나무의 높이는 1,000,000,000보다 작거나 같은 양의 정수 또는 0이다.(성공) 이분 탐색을 통해 범위를 줄여가면서 최적의 해를 구하는 방식으로 풀었다. 풀이0부터 나무 높이의 최대값(1,000,000,000)까지 이분 탐..
2024. 11. 2.