본문 바로가기

전체 카테고리361

[Effective Java] 아이템1 생성자 대신 정적 팩터리 메서드를 고려하라 1. 정적 팩터리 메서드 클래스는 생성자와 별도록 정적 팩터리 메소드를 제공할 수 있다. 다음 코드는 boolean 기본 타입의 박싱 클래스인 Boolean에서 발췌한 간단한 예시다. 이 메서드는 기본 타입인 boolean 값을 받아 Boolean 객체 참조로 변환한다. public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } 2. 정적 팩터리 메서드 장점 장점 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명하지 못하지만, 정적 팩터리 메서드는 반환될 객체의 특성을 쉽게 묘사할 수 있다. 장점 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다... 2021. 1. 11.
Oauth 2.0 소개 안녕하세요 오늘은 Oauth 2.0에 대해서 학습한 내용에 대해서 정리하도록 하겠습니다. 토이 프로젝트 진행 시 실제 서비스를 하려면 소셜 로그인 기능은 필수라 Oauth 2.0에 대해서 한번 정리를 하려고 합니다. 1. Oauth 2.0 소개 Oauth2.0(Open Authentication 2)이란 웹이나 모바일 애플리케이션 다른 회사의 API를 사용하기 위해서 권한 획득을 위한 프로토콜 입니다. 즉, 인증을 위한 오픈 스탠다드 프로토콜 입니다. Oauth 2.0은 1.0과 호환되지 않지만 인증 절차가 간략합니다. Oauth를 이용하면 로그인 및 각종 API를 편하고 안전하게 사용할 수 있습니다. 구글, 카카오, 페이스북에서 제공하는 인증 서버를 통해 회원 정보를 인증하고 Access Token을 .. 2020. 10. 26.
[알고리즘] 프로그래머스 - 섬 연결하기(탐욕법) 1. 문제 2. 문제 풀이 1. 각각의 섬이 다리로 연결된 비용을 map 배열에 저장한다. 2. 시작 섬으로 0번째 섬을 방문 했다고 표시해준다. 3. 모든 섬을 방문 하지 않았다면 모든 섬을 방문할 때 까지 최소값을 구한다. 4. 현재 방문한 섬들을 기준으로 이 섬과 연결된 다리중 가장 최소값을 선택해서 다리를 newMap 배열에 건설했다고 표시한다. 5. 4번 과정을 반복해서 answer에 각각의 최소값을 더해주고, 모든 섬을 방문하면 답이 나온다. public class Solution { int[][] map; int[][] newMap; boolean[] visit; int answer = 0; public boolean isAllVisit(){ boolean flag = true; for(in.. 2020. 10. 26.
[알고리즘] 프로그래머스 - 구명보트(탐욕법) 1. 문제 2. 문제 풀이 보트에는 2명 밖에 타지 못하므로 몸무게가 가장 많이 나가는 사람과 가장 적게 나가는 사람이 탈 경우 가장 많이 탈 수 있다. 사람들을 몸무게 순으로 정렬하고 남은 사람중 가장 많이 나가는 사람과 가장 적게 나가는 사람이 탈 경우 탈 수 있으면 같이 태우고, 같이 못타는 경우는 몸무게가 가장 많이 나가는 사람만 타게한다. import java.util.Arrays; class Solution { public int solution(int[] people, int limit) { int answer = 0; Arrays.sort(people); int s = 0; int e = people.length-1; while(s 2020. 10. 26.
[알고리즘] 프로그래머스 - 체육복 (탐욕법) 1. 문제 2. 문제 풀이 체육복을 빌릴 때 체육복이 없고, 앞에 사람이 여유분이 있다면 무조건 앞에 사람한테서 체육복을 빌린다. 만약 앞에 사람이 여유 체육복이 없고 뒤에 사람이 여유 체유복이 있으면 뒤에 사람한테 빌리도록 순서를 강제한다. import java.util.*; class Solution { private int[] person; public void greedy(int n, int[] lost, int[] reserve){ for(int i=1;i 2020. 10. 10.
[알고리즘] 프로그래머스 - 등굣길 (동적 계획법) 1. 문제 2. 문제 풀이 dp 배열을 먼저 초기화 하는데, 0행과 0열에 물웅덩이가 있으면 그 다음 지역으로는 갈 수 없으므로 0으로 초기화 된 값을 남겨둔다. 그리고 물웅덩이가 없을때가지 1로 초기화를 해준다. dp 배열을 채울때 물웅덩이가 있으면 0으로 바꿔주고, 나머지 경우는 코드를 참고하면 쉽게 이해할 수 있다. class Solution { private static int dp[][]; public static void calculateDp(int m, int n){ for(int i=0;i 2020. 10. 7.