2023.05.03.WED

ronglong·2023년 5월 3일
0

[ 백준 ]

  • 2747번 피보나치 수
    : 유튜브로 DP 기초 핵심이론 강의 듣고, 거기에서 나온 문제를 그대로 풀어봤다.
    욕심내지 말고 천천히,,
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언

        //입력 값을 받는다.
        int n = Integer.parseInt(br.readLine());

        //문제를 쪼갠 후 값을 넣을 메모이제이션용 DP 테이블을 만든다.
        int[] dp = new int[n+1];

        //피보나치 수열에서 f(n) = f(n-1) + f(n-2)
        //처음 0과 1의 경우를 초기화한다.
        dp[0] = 0;
        dp[1] = 1;

        //각각의 값을 구해서 테이블에 값을 넣는다. 바텀업 방식
        for(int i=2; i<=n; i++){
            dp[i] = dp[i-1] + dp[i-2];
        }

        System.out.println(dp[n]);
    }
}

[ 자료구조 & 알고리즘 ]

  • 이진 트리 -> 1차원 배열로 표현(인덱스 1부터) -> 인덱스로 부모, 자식 구하기 가능
  • 조합(DP 기초), 점화식(어떤 수열의 일반항을 그 이전의 항들을 이용하여 정의한 식)
  • DP(동적계획법)
    • 문제를 부분 문제로 쪼개기
    • 점화식 만들기(인과관계)
    • 메모이제이션(DP테이블, 시간복잡도 줄임)
    • 구현 방법
      • 탑다운(재귀 이용. 런타임 에러 발생 가능)
      • 바텀업

[ 혼공컴운 ]

Chapter 06. 메모리와 캐시 메모리

  • RAM 종류 : DRAM(주기억장치), SRAM(캐시 메모리), SDRAM(클럭 동기화), DDR SDRAM(대역폭)
  • 논리 주소 -> MMU(메모리 관리 장치) -> 물리 주소
  • 명령어 속 주소는 논리 주소
  • 메모리 보호 기법 : 베이스 레지스터(프로그램의 첫 물리 주소), 한계 레지스터(논리 주소 최대값)
  • 논리 주소가 한계 레지스터 값보다 크면 인터럽트(트랩 - 다음 명령어부터 재실행) 발생
  • 저장 장치 계층 구조 : CPU와의 거리 기준
  • 캐시 메모리
    • CPU의 연산 속도와 메모리 접근 속도의 차이를 줄임
    • L1, L2, L3(코어 외부에서 멀티 코어 공용)
    • CPU에 필요한 값을 예측함
    • 캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
    • 참조 지역성 원리 : 캐시 메모리의 예측법.
      최근 접근 메모리(시간 지역성) + 접근 메모리 근처(공간 지역성)

[ API 특강 ]

  • Java 1.8 : 가장 널리 쓰이고 안정적임
  • 지원서&면접에서 '교육, 학습 공부' 같은 단어 사용하지 말기. 어감의 중요성.
  • 정규화 공부하기
    https://code-lab1.tistory.com/48

[ 느낀 점 ]

내일 공부 계획. 내일은 알고리즘 못할 듯.
-> 오전 : 혼공컴운 챕터 7
-> 오후 : API 특강
-> 저녁 : photoday image 리사이징 (썸네일) 구현

0개의 댓글