본문 바로가기

알고리즘/백준

(16)
[24266] 알고리즘 수업 - 알고리즘의 수행 시간 5 시간복잡도 문제이나, Math.pow를 사용해 제곱연산을 구현했고 틀렸다.결국 n*n*n이 정답이었고 Math.pow와 둘의 차이를 알아보고자 한다.import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); long n = Long.parseLong(b..
[3067] Coins, DP 중복을 허용하고, 순서는 고려하지 않으면 DP를 고려해보자!중복을 허용하는 특성을 바탕으로 점화식을 작성하는게 DP문제의 핵심 import java.util.*;import java.io.*;public class Main { static int dp_f(int[] coins, int target) { int[] dp = new int[target + 1]; dp[0] = 1; for (int coin : coins) { for (int i = coin; i
[1780] 재귀, 종이의 개수 접근 방식은 좋았는데 재귀의 else 부분과 재귀 호출 시 x, y(초기 위치)를 생각 못해서 오래 걸림. 다시 풀어봐야할듯 import java.util.*;import java.io.*;public class Main { static int a = 0; static int b = 0; static int c = 0; static boolean isComplete(int[][] paper, int x, int y, int size) { int value = paper[x][y]; for (int i = x; i
[20920] 영단어 암기는 괴로워, Comparator, getOrDefault hashmap 정렬 규칙 재정의해서 정렬getOrDefault는 hashmap에 키가 존재하면 그 값을 불러옴. 없으면 해당 값으로 초기화 comparator은 조금 더 공부해보고 이해하면 설명해보자import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); ..
[28278] 스택 2, java, stack Stack stack = new Stack(); 값 추가: stack.push() 맨 위 값 제거 후 반환: stack.pop()맨 위 값 반환: stack.peek()비었으면 true 아니면 false: stack.isEmpty()값의 인덱스 반환: stack.search() import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWri..
[4948] 베르트랑 공준, 약수판별, 아리토스테네스의 체, JAVA 아리토스테네스의 체를 이용해 약수를 구하는 예제 import java.io.*;import java.util.*;public class Main { public static int imp(int n) { int[] e = new int[2 * n + 1]; for (int j = 2; j
최대공약수(유클리드호제법), 최소공배수 public static long gcd(long a, long b) { while (b != 0) { long temp = a % b; a = b; b = temp; } return a; } public static long lcm(long a, long b) { return (a * b) / gcd(a, b); }
java에서 함수 사용 유클리드 호제법을 활용해서 최대 공약수를 구하고최소 공배수는 두 수의 곱을 최대 공약수로 나눈 값이라는 방법을 함수로 만들어서 익혀보자 public static int gcd(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; } return a; } [접근제한자] [메서드행태] [출력자료형][함수명]([입력변수]) 형태 전체 코드import java.io.*;import java.util.*;public class Main { public static int gcd(int a, int b) { while (b..