본문 바로가기

알고리즘 문제풀이

(51)
백준2559-수열 java package TwoPointer; import java.util.Scanner; public class B2559 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int range = sc.nextInt(); int[] arr = new int[n+1]; for(int i=1; i
백준7576 - 토마토 java package a0225; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class 백준7576토마토 { static int garo ; static int sero ; static int[][] arr ; static int[][] visit ; static int maxday; static int search() {// 0이 하나라도 있으면 1반환, 0이 없으면 0 반환 int flag = 0; for(int i=0; i
백준2491-수열 java package A0209; import java.util.*; /* 배열을 입력받고 -> 방향으로 탐색 1회, =nums[i+1])lens[i]+=lens[i+1]; } for(int i=0; imaxlen)maxlen=lens[i]; } System.out.println(maxlen); } }
백준2477-참외밭 java package A0209; import java.util.*; /* 총 4가지 경우가 있으며 각각 방향으로 들어오는 숫자의 조합의 갯수가 다 다르다 -> 이것을 기준으로 구분한다. 큰 사각형 - 작은사각형으로 해당 넓이를 구한다. 작은 사각형의 가로, 세로는 방향으로 들어오는 숫자의 양옆에 들어오는 숫자로 구별한다. */ public class B2477_참외밭 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); class Pair{ int dir; int len; Pair(int dir, int len) { this.dir = dir; this.len = len; } } int num = sc.nextInt();..
백준2309-일곱난쟁이 java package a0204; import java.io.*; import java.util.*; public class B일곱난쟁이 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[10]; int sum = 0; for(int i=1; i
백준2304-창고다각형 java package ps; import java.io.*; import java.util.*; import java.util.Map.Entry; public class B2304 { static class idxcmp implements Comparator{ @Override public int compare(Pair p1, Pair p2) { if(p1.i>p2.i)return 1; else if(p1.i
백준2116-주사위쌓기 java package a0204; import java.io.*; import java.util.*; /* index 짝: (1,6 / 2,4 / 3,5) -> 배열 돌면서 index 1,2,3만 확인하며 완전탐색? -> 1행에서 index 정해지면 해당 idx수와 짝이되는 수를 제외하고 최대값찾기 -> 모든 행 반복하며 수행 -> 총 3가지 경우가 나온다 */ public class B주사위쌓기 { static int maxsum = 0; static int pair = 0; static int down = 0; static int sero = 0; static int[][] arr; static int pairfind(int picknum, int sero) { int pair = 0; for(int i=1..
백준17144 - 미세먼지안녕 java풀이 package a0225; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; /* 먼지 나눠주는 과정에서 양이 중복되지 않도록 조심해야함 -> 같은 단계인데 더해진 값으로 계산하면 더 많이 나눠줄수있음 주의 *** 나눠줄떄 *** 큐에 들어있는 기준값으로 조건에 맞는 사방으로 나눠줌 더해줄때 좌표의 값 + 나눠줄값 으로 계산 *** 나눠주고 남은값계산 *** (큐에 들어있는 기준값 - 총 나눠준값) -> 이렇게 하면 안됨 why?-> 다른곳에서 현재 좌표에 먼지를 나눠줘서 기존 먼지양보다 늘어났을수도 있음 따라서 나눠주는값은 기존의 큐값을 기준으로 나눠주되 빼줄때는 현재 좌표의 값에서 나눠준값을 빼준다...