본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

46일차 - 알고리즘(완전 탐색), LocalDateTime 연산

https://school.programmers.co.kr/learn/courses/30/lessons/42840

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

완전 탐색(Brute force)

모든 경우의 수를 시도하여 정답을 찾는 알고리즘

확실하게 정답을 찾을 수 있지만, 효율성은 떨어진다.

너비 우선 탐색(BFS), 깊이 우선 탐색(DFS)도 완전 탐색의 한 종류이다.

  

문제 풀이

https://yurison.tistory.com/237

 

[프로그래머스/자바] 모의고사

import java.util.ArrayList; import java.util.List; class Solution { public int[] solution(int[] answers) { int[] student1 = {1, 2, 3, 4, 5}; int[] student2 = {2, 1, 2, 3, 2, 4, 2, 5}; int[] student3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}; int[] score = {0, 0, 0}

yurison.tistory.com


LocalDateTime 연산

LocalDateTime.now() : 현재 시스템 시간

  

Plus 연산

plusYears(long years) : 연도 추가

plusMonths(long months) : 월 추가

plusWeeks(long weeks) : 주 추가

plusDays(long days) : 일 추가

plusHours(long hours) : 시 추가

plusMinutes(long minutes) : 분 추가

plusSeconds(long seconds) : 초 추가

plusNanos(long nanos) : 나노초 추가

 

Minus 연산

minusYears(long years) : 연도 빼기

minusMonths(long months) : 월 빼기

minusWeeks(long weeks) : 주 빼기

minusDays(long days) : 일 빼기

minusHours(long hours) : 시 빼기

minusMinutes(long minutes) : 분 빼기

minusSeconds(long seconds) : 초 빼기

minusNanos(long nanos) : 나노초 빼기

  

LocalDateTime now = LocalDateTime.now();
LocalDateTime plusNow = now.plusYears(5);  // 현재 시간에서 5년 뒤의 시간
LocalDateTime minusNow = now.minusHours(10);  // 현재 시간에서 10시간 전의 시간

  

LocalDateTime 비교하기

A.isAfter(B) : A가 B보다 미래 시간이면 true

A.isBefore(B):  A가 B보다 과거 시간이면 true

A.isEqual(B) : A와 B가 같은 시간이면 true

  

A.compareTo(B)

- A가 B보다 미래 시간이면(A>B) 1

- A가 B보다 과거 시간이면(A<B) -1

- A와 B가 같은 시간이면 0

  

LocalDateTime a = LocalDateTime.of(2023, 4, 1, 0, 0, 0);
LocalDateTime b = LocalDateTime.of(2023, 4, 1, 10, 0, 0);

System.out.println(a.compareTo(b));  // -1 출력

// 응용하기
if(a.compareTo(b) < 0) {
    ...  // a.compareTo(b)의 값은 -1 이므로 true, 해당 내용이 수행된다.
}