본문 바로가기

Java

정적 팩토리 메소드의 장점과 단점 장점 1.메소드 이름이 있으므로 기본 생성자에 비해 가독성이 올라간다. public class Character { int intelligence, strength, hitPoint, magicPoint; public Character(int intelligence, int strength, int hitPoint, int magicPoint) { this.intelligence = intelligence; // 지능 this.strength = strength; // 힘 this.hitPoint = hitPoint; // HP this.magicPoint = magicPoint; // MP } // 정적 팩토리 메소드 public static Character newWarrior() { return n.. 더보기
BigInteger의 여러가지 메소드 BigInteger의 여러가지 메소드 BigInteger bigInteger = new BigInteger("30"); // BigInteger 선언 BigInteger bigInteger2 = new BigInteger("24"); System.out.println(bigInteger.add(bigInteger2)); // 더하기 System.out.println(bigInteger.subtract(bigInteger2)); // 빼기 System.out.println(bigInteger.multiply(bigInteger2)); // 곱하기 System.out.println(bigInteger.divide(bigInteger2)); // 나누기 System.out.println(bigInteger.r.. 더보기
Arrays.fill을 이용한 배열 채우기 Arrays.fill을 이용한 배열 채우기 int[] arr= new int[5]; Arrays.fill(arr,1);//1차원 배열 Arrays.fill(arr,0,2,1); // 0~2 index까지 1로 채우기 int[][] arr2 = new int[5][5]; for (int[] a : arr2) { // 2차원 배열 Arrays.fill(a, 1); } 알고리즘(등굣길) https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr https://.. 더보기
stream을 활용한 2차원배열 합 stream을 활용한 2차원배열 합 int[][] arr = {{1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}}; int sum = 0; for(int[] a:arr){ sum+= Arrays.stream(a).sum(); } 알고리즘 https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr https://github.com/yougeun6021/Algorithm/blob/master/src/Level2/CompressionNum.. 더보기
약수 개수 알고리즘 약수 개수 알고리즘 public static int getDivisorNumber(int n){ int count =0; double sqrt = Math.sqrt(n); if(sqrt%1==0){ count++; if(n==1){ return count; } } for(int i=1; i 더보기
Sliding Window 알고리즘 Sliding Window 알고리즘 public class SlidingWindow { public static void main(String[] args) { int [] arr = {1,5,4,3,6,1,2,4,2,1}; // 배열 int k = 3; // 배열 크기 System.out.println(sumMaxSlidingWindow(arr,k)); System.out.println(maxElementSlidingWindow(arr,k)); } public static int sumMaxSlidingWindow(int[] arr,int k) { // 배열 크기에 해당하는 배열의 원소의 합이 가장큰 값 int max =0; for(int i=0; i 더보기
StringBuilder를 활용한 dfs StringBuilder를 활용한 dfs 알고리즘 풀이(소수 찾기) public class FindPrimeNumber { // 소수 찾기 public static void main(String[] args) { String numbers = "1231"; System.out.println(solution(numbers)); } public static int solution(String numbers) { HashSet hashSet =new HashSet(); boolean[] visited = new boolean[numbers.length()]; StringBuilder sb = new StringBuilder(); for(int i=1; i 더보기
dfs 순열 알고리즘 dfs 순열 알고리즘 public static void permutation(int n,int r) { int[] answer = new int[r]; int[] arr = new int[n]; for(int i=1; i 더보기