백준(3)
-
[백준] 21610 마법사 상어와 비바라기(Java)
문제 자체가 설계라서 크게 설계에 힘을 들이진 않았다. 처리 흐름 1. 구름 이동 2. 각 구름이 있는 칸 물 1 증가 + 구름 있음 처리 3. 구름이 사라진다. -> map에서는 4,5번 작업을 위해 지금 없애지 않는다. 4. 물복사버그 마법 5. 물이 2 이상인 칸에 구름 생성 + 단 원래 구름이 있던 자리는 제외 내 코드의 포인트 1. 구름을 map과 ArrayList에서 중복으로 관리하고 있다. 1.1. map에는 물의 양과 구름 여부를 기록한다. => 5번 처리에서 구름 생성을 위함 1.2. ArrayList로 구름의 위치를 기록한다. => 1,2번 처리에서 구름 이동과 비를 내리기 위함 코드 import java.io.BufferedReader; import java.io.IOException..
2022.08.30 -
[BOJ] 24392 영재의 징검다리
3달정도 알고리즘에서 플젝하느라 알고리즘에서 거의 손을 떼고 있었더니 감이 많이 떨어졌다. 같이 플젝하던 팀원이 자기도 감이 떨어졌다면서 추천해준 문제인데 정말 화가 난다... 진짜... 오랜만에 알고리즘 푸는 사람들이 풀어야할 문제이자 너무 화가나는 문제다. 1. 문제 https://www.acmicpc.net/problem/24392 2. 문제 분석 처음엔 DFS로 풀었다. 시간 오버일 건 알고있었지만 오랜만에 DFS연습겸 + 사실 난 틀려야 제약조건이 눈에 들어온다... 역시나 시간초과. 어떻게할까 고민했다. 집 지붕 색칠문제 같은 걸로 두세번 풀어본 유형인 건 알겠는데 방법이 뭐였는지 생각이 안난다. 그리고 1000000007로 나머지 연산을 하란 것도 걸린다. 그래도 우선은 시간초과부터 해결하자..
2022.02.25 -
[백준] [의문]14501번- 퇴사
https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 이해 : 백준이는 오늘로부터 N+1일에 퇴사할 예정. 남은 N일간 최대한 많이 상담을 할거다 => N일동안 최대한 벌고 나가겠다. 입력 - N(일 할 수 있는 일수) (1~15) - Ti(상담 기간) (1~5) - Pi(상담에 따른 금액) (1~1000) 시간제한이나 입력값 크기를 보면 뭘 하든 시간 제한이나 메모리 제한에 걸리진 않을 것 같다. 부분 집합으로 완전탐색을 돌릴 수도 있다. 백준의 분류로는 다이나믹으로 되어있긴한데 이번주는 순열, 조합, 부분집합 돌리는 날이라 그냥 부분집합을 썼다. 결과 출력 백준이가 얻을 수 있..
2021.08.15