본문 바로가기

전체 글194

[백준 / 2468 안전 영역 / JAVA / DFS] https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 문제 설명 모든 지역을 탐색하면서 지나갔던 길과 갈 수 없는 길인지 판단해야한다. 맵에서 최대 높이를 구하고 0부터 최대 높이만큼 반복문을 돌면서 DFS로 해당 높이에서 모든 지역을 탐색한다. dx, dy 배열을 활용하여 상하좌우를 탐색 이미 방문했거나 범위를 벗어나는 경우의 조건을 걸어주면서 더 이상 갈 수 있는 방향이 없으면 이게 하나의 안전 영역이고 1을 return시켜서 areaCnt에 1을 더해.. 2023. 7. 29.
[백준 / 14501 퇴사 / Java / DP] https://www.acmicpc.net/problem/20546 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 설명 일할 수 있는 요일을 지정해서 최대 요금을 구해야하는 문제 dp[i+t[i]] = Math.max(dp[i+t[i]], dp[i] + p[i]); DP[현재 날의 상담 기간을 계산했을 때 끝나는 날] = max(DP[현재 날의 상담 기간을 계산했을 때 끝나는 날], DP[현재 날까지 계산된 값] + pay[현재 날 상담을 통해 얻는 값]) dp[i + t[i]] = Math.max(dp[i + t[i]], dp[i] + p[i]); 다음날의 계산된 결과 값, 오늘날의 계산된 결과 값 중 큰 값을 다음날 값에 삽입 위의 두 .. 2023. 7. 29.
[백준 / 14425 문자열 집합 / JAVA] https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 문제 설명 간단하게 N줄에 걸쳐 선언한 문자열 S들이 M줄에 걸쳐 선언한 문자열들과 같은지 비교하는 문제 for문을 사용한 방법과 map을 사용한 방법으로 풀이 위가 map, 아래가 for문 for문 import java.util.*; import java.io.*; public class Main { public static void main (String[] a.. 2023. 7. 29.
[백준 2503 / 숫자 야구 / JAVA / 구현] https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 문제 접근 상상 속의 정답을 스트라이크와 볼로 찾아나가야 한다. 정답은 0이 될 수 없고, 서로 겹칠 수 없기 때문에 정답의 경우는 123 ~ 987 사이다. 이 사이의 수를 check 배열에 true로 처음에 지정 이후 123~987 사이에 정답일 수 있는 수와 입력받은 숫자 3자리를 일일이 비교하며 스트라이크와 볼인지 판단 이 때 판단한 스트라이크와 볼이 입력받은 스트라이크와 볼의 수와 같은지.. 2023. 7. 27.
[SWEA / 창용 마을 무리의 개수 / JAVA / DFS] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWngfZVa9XwDFAQU SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 접근 정수형 배열 타입의 List 생성해서 마을 내의 아는 사람들 끼리 서로서로 리스트에 번호를 추가시켜준다. ex)1, 2, 5가 아는 사이일 경우 list[1] = {2, 5}, list[2] = {1,5}, list[5] = {1,2} 처럼 저장될 것이다. 여기서 1부터 방문 탐색을 진행 방문하지 않은 번호면 방문후 true로 방문 표시 1번 탐색하러 들어가면 2번은 아직 탐색 전이니까 .. 2023. 7. 16.
[SWEA / 문자열문자열 / JAVA] https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AYgEiwbKy48DFARP&categoryId=AYgEiwbKy48DFARP&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 접근 문자열을 반으로 잘라서 자른 두 문자열이 같아야 된다로 이해했다. 해당 문자열을 char 배열로 생성 그리고 문.. 2023. 7. 16.