본문 바로가기
728x90

코딩테스트/BOJ49

[그리디] 백준 11399번 ATM https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이) 그냥 배열 정렬하고 앞에서부터 더한 값으로 배열 바꿔주고 전체 더한 값 return함 아마 코드보면 그냥 이해갈 정도로 쉬움! 자바 코드) import java.util.Arrays; import java.util.Scanner; public class boj1931 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n .. 2022. 2. 28.
[JAVA] 백준 2512번 - 예산 이 문제는 이분탐색을 통해 해결이 가능했다 이분 탐색의 기준은 인덱스가 아닌 예산이 된다 예산을 기준으로 시행하며 만약 m이 예산의 합보다 작으면 임계치(mid)를 1 감소하고, m이 더 크면 예산 배정이 더 가능한지 확인해야 하니까 1을 더해서 확인해본다 처음엔 좀 어려웠는데 2번 푸니까 이해가 간다! 아래는 코드! 자바 코드) import java.util.Arrays; import java.util.Scanner; public class boj2512 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int answer=0; int n = sc.nextInt(); int[] budgets = new int[.. 2022. 2. 22.
[JAVA] 백준 14916번 - 거스름돈 https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 풀이) 근로 점심시간에 낮잠자고 비몽사몽 백준을 보다가 내가 못푼 문제가 있는거 아니겠어?! 내가?? 하면서 봤더니 거스름돈이네ㅋㅋㅋㅋㅋㅋㅋ 그래서 눈 반만 뜨고 풀었는데 이게 풀리네 나 자신,, 나름 성장하고 있는걸지도,,? 오이오이~~~ 암튼 풀이는 간단했음 이런 DP문제는 최소 동전이니까 큰 금액 동전으로 줄 수 있는만큼 주고 남은 돈은 작은 동전으로 거슬러 주면 된다 근데 딱 안나눠질수도 있으니까 난 반복문으로 풀었다 이 문제는 2원이랑 5원 뿐이니까 5원으로 거스름돈을 나눌 수 있는 최댓값을 기준으로 반복문.. 2022. 2. 18.
[JAVA] 백준 2606번 - 바이러스 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이) 처음에 이 문제 보고 아 어렵네,,, 했는데 저기 문제에 뭐라고 써있는지 알아? 초등부..? 2004년도 초딩들,,, 대단했네,,, 이거 보고 갑자기 잠이 깨고 머리가 돌더니 문제를 풀어버림 내가 본선 중등부까지는 비벼봐야되지 않겄어?! 이건 인접리스트로 풀었다 배열로 주어지는게 아니니까 이중 ArrayList로 선언하고 풀었다 저번에 풀었던 백준 1260번(DFS와 BFS) 였나? 그 문제랑 .. 2022. 2. 18.
[JAVA] 백준 2178번 - 미로 탐색 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 풀이) 분명 DFS 알고리즘 문제를 눌렀는데 BFS였다,,ㅋㅋㅋ 그치만 난 둘다 못하니까 괜차나~~~~ 최단거리 찾는거니까 큐를 쓰는 BFS로 풀면 된다 BFS를 호출할 때마다 count를 세는 식으로 해봤는데 이상하더라고,, 그래서 찾아보니까 이전 배열 값을 늘려주는 식으로 구현하더라? BFS가 큐에서 하나를 꺼내고 그 값 기준으로 상하좌우에서 갈 수 있는 곳을 가는데 이 때 이전 값, 즉 큐에서 꺼낸 값 기준으로 1을 더해준.. 2022. 2. 17.
[JAVA] 백준 2667번 - 단지번호붙이기 풀이) 안녕하세요 dfs 멍충이 야미입니다 아 정말 못하네~^0^ 이 문제는 인접행렬을 사용하였다 단지를 인덱스로 갖는 배열로 만들고 그 배열에 단지내 수를 저장한다 -> house 나중에 이 배열의 size가 곧 총 단지 수가 된다 그리고 방문처리를 해주며 dfs를 통해 해결했다 아래는 코드! 자바 코드) import java.util.*; public class Main { static int n; static int count; static int[][] arr; static boolean[][] visited; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static ArrayList house = new ArrayList(.. 2022. 2. 16.
728x90