본문 바로가기

알고리즘/알고리즘 개념 정리

(10)
최대공약수(유클리드 호제법) // 최대 공약수 계산 (유클리드 호제법) private int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; }// gcd func end  public long solution2(int w, int h) { long totalCount = (long) w * (long) h; long diagonalCount = w + h - BigInteger.valueOf(w).gcd(BigInteger.valueOf(h)).longValue(); return totalCount - diagonalCount; } class Solution { public long..
Greedy 큰 수 만들기에서재귀함수를 연습하려고 했는데시간초과가 나왔다. 이럴 때는 그리디를 선택해야한다.코드에서 스택을 사용한다.코드 해석은 했지만, 왜 스택에 넣고 빼고 하는지 이해가 되지 않아서 정리하려고 한다.프로그래머스 그리디 문제 목록https://school.programmers.co.kr/learn/courses/30/parts/12244 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  백준 그리디 문제 목록https://www.acmicpc.net/workbook/view/4380  개념https://www.youtube.com/watch?v=8V2zw..
DFS 작성 중..  그래프: 여러 개체들이 연결 되어있는 자료 구조 DFS == 한놈만 끝까지 판다. 재귀 함수 사용, 모든 경우의 수를 확인BFS == 여러개를 하나 씩 본다, Queue, LinkedList 사용, 순서가 보장 되어야 한다 DFS     BFS    재귀 함수메모리에 쌓이는 방법https://www.youtube.com/watch?v=yio6FyP1N2k    재귀함수는 스택에 쌓인다3, 2, 1, 0 -> 재귀 함수 전 printf 종료는 역순으로 종료된다0, 1, 2, 3 -> 재귀 함수 후 printf 반드시 종료를 넣어야 한다 조합 문제에서https://www.youtube.com/watch?v=HYKpunR1Nto  Combinationn! / n-r 였나? 7P3 == 7*6*5..
[java] Array Array 1) 배열 생성 시 크기 결정됨 ->, 크기 고정, 불특정 다수 객체 저장 문제 2) 객체 삭제 시 해당 인덱스가 비게 된다. 듬성듬성 옥수수 3) 참조 변수이다. 선언 선언 + 값 결정 String[] 변수명 = {"A", "B", "C"}; 선언 + 나중 값 결정 String[] 변수명 = null; 변수명 = new String[] {"A", "B", "C"}; 선언 + 크기 지정 + 나중 값 결정 String[] 변수명 = new String[길이]; 값 대입 변수명[인덱스] = 값; 배열.add char[] 한글자씩 String str = "ABCDE"; char[] charArray = str.toCharArray(); array -> List String[] arr = {"A", ..
[java] Math 클래스, String https://coding-factory.tistory.com/250 [Java] 자바 소수점 n번째 자리까지 반올림하기 이번 포스팅에서는 자바에서 긴 소수를 반올림하여 n번째 자리까지 나타내는 방법에 대해 알아보겠습니다. 여러가지 방법이 있겠습니다만 Math.round();함수를 활용하거나 String.format(); 함수를 활 coding-factory.tistory.com Math.round()와 String.format()차이점 Math.round()함수는 소수점아래가 0일경우 절삭 String.format은 절삭하지 않고 그대로 리턴 Math 클래스의 메소드 예제 Math.E 약 2.718 Math.PI 약 3.14159 Math.random() System.out.println((int)(M..
[java] stream stream : 자바8부터 추가됨, 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자 : 반복 요소를 순차적으로 처리하기 1) stream 과 iterator은 비슷한 역할을 하는 반복자 2) 람다식으로 요소를 처리하는 함수를 만든다 3) 내부 반복자 사용 외부 반복자: 개발자가 직접 컬렉션 요소를 반복하는 코드 패턴을 작성함 ex) for문, while문 내부 반복자: 컬렉션 내부에서 요소들을 반복 처리. 개발자는 처리 함수만 작성함. java 7이전: Iterator 사용 package com.company; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class tes..
[java] Comparable, Comparator TreeSet의 객체 TreeMap의 키는 저장과 동시에 자동 오름차순으로 정렬된다. 숫자 타입(Integer, Double): 숫자 값으로 정렬 문자 타입(String): 유니코드 정렬 System.out.println(Arrays.toString(str));// [3, 30, 9] Arrays.sort(str, new Comparator() { @Override public int compare(String o1, String o2) { // 3, 30 --> 303 vs 330 : -1 리턴 System.out.println("compare:: "+o1+" "+o2);//compare:: 30 3 // compare:: 9 30 System.out.println((o2+o1).compareTo(o1..
[java] Array, List, Set, Map Array 1) 배열 생성시 크기 결정됨 ->, 크기 고정, 불특정 다수 객체 저장 문제 2) 객체 삭제시 해당 인덱스가 비게 된다. 듬성듬성 옥수수 인터페이스 분류 특징 구현 클래스 Collection List 인덱스-값 순서를 유지, 저장 중복 저장 가능 ArrayList Vector LinkedList Set 키 주머니 순서 없음, 저장 키 = 유니크 HashSet TreeSet Map 키-값 키-값 으로 구성됨 키 = 유니크 HashMap TreeMap HashTable Properties 출처: 이것이 자바다 - 신용권 List 컬렉션 1) 저장 순서 유지 됨. ex) list.add(2) list.add(1) list.add(3) // [2,1,3] 2) 인덱스-값 인덱스로 추가add, 수정s..