반응형

분류 전체보기 270

[프로그래머스/JavaScript] Lv.3 여행경로

해당 문제는 DFS문제로 조건에 따른 경우의 수를 구하는 문제이다. BFS 사용 예 - 최단거리, 최소 횟수, 미로, 탐색 등 DFS 사용 예 - 경우의 수, 이동 과정에 제약 있음 등 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/43164 1. DFS 과정 2. 풀이 var answer = []; function solution(tickets) { // 1) 알파벳 순서에 따른 정렬 let ticketsSort = tickets.sort(); // 2) ICN에서 출발하기 때문에 ICN 담고 시작한다. return dfsPlan("ICN", ticketsSort, ["ICN"]); } function dfsPlan(ticket, ti..

Algorithm 2022.11.11

[Android] 앱 배포(1) 앱 번들(App Bundle) release 파일 생성 방법

App Bundle 앱 번들(App Bundle) 이란? '앱의 모든 컴파일된 코드 및 리소스를 포함하며 APK 생성 및 서명을 Google Play에 맡기는 게시 형식'이라고 정의하고 있습니다. 구글 스토어에 업로드된 번들 앱을 구글 스토어가 각 기기 설정에 맞게 최적화된 APK를 생성하여 사용자에게 다운로드하게 만들어 줍니다. 따라서 사용자는 자신의 기기에 필요한 코드와 리소스만 다운로드할 수 있게 됩니다. 1. Bundle 사용 시 이점 - 다운로드 크기와 디스크 할당 크기가 작아진다. - 사용자의 기기 대신 APK에 저장되는 압축되지 않은 기본 라이브러리를 사용하여(Android 6.0 이상) 다운로드 크기, 디스크 할당 크기, 설치 시간을 줄일 수 있다. - 사용자에게 필요한 기능 및 설정을 설..

Kotlin 2022.11.09

[프로그래머스/JavaScript] Lv.3 아이템 줍기

해당 문제는 BFS문제로 최단 거리를 구하는 문제이다. BFS 사용 예 - 최단거리, 최소 횟수, 미로, 탐색 등 DFS 사용 예 - 경우의 수, 이동 과정에 제약 있음 등 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/87694 function solution(rectangle, characterX, characterY, itemX, itemY) { // 1) 좌표를 2배로 늘린다. characterX *= 2; characterY *= 2; itemX *= 2; itemY *= 2; let dobuleRec = rectangle.map(rec => rec.map(point => point * 2)); // 2) 위, 아래, 우측, 좌..

Algorithm 2022.11.08

[Kotlin] Null 처리 방법(Nullable, NonNull)

빈 값이 들어갈 수가 있으며 이를 null이라고 한다. Java에서는 null이 들어가면서 발생하는 오류(예외)를 NPE(Null PointerException) 이라고 한다. 반면 Kotlin에서는 따로 정해진 null 예외처리가 없으며 기본적으로 변수에는 null 값이 들어갈 수 없다. 1. Nullable / NonNull Nullable : 변수에 null을 넣을 수 있다는 의미 NonNull : 변수에는 기본으로 null이 들어올 수 없으니 해당 변수는 NonNull 1-1) ' ? '를 사용한 null 체크 방법 //기본적으로 코틀린은 NonNull type; var name = "jacob" //"?"를 붙여주면 null 사용 가능 ?을 넣어야하기 때문에 타입을 생략하면 안됨 var null..

Kotlin 2022.11.04

[프로그래머스/JavaScript] Lv.3 단위변환

해당 문제는 BFS문제로 최소 횟수를 구하는 문제이다. BFS 사용 예 - 최단거리, 최소 횟수, 미로, 탐색 등 DFS 사용 예 - 경우의 수, 이동 과정에 제약 있음 등 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/43163 function solution(begin, target, words) { // 1) 중복 방지를 위해 변환한 알파벳을 담을 배열 선언 const visited = []; // 2) 큐에 최초 알파벳과 위치를 담는다. const queue = [[begin, 0]]; // 3) 큐에 값이 있으면 반복 while(queue.length > 0){ // 4) 큐에 담긴 최근 값(shift) 가져오기 let [w, ..

Algorithm 2022.11.03

[Kotlin] Fragment Navigation 화면 전환 방법

Fragment Navigation 이란? Android Jetpack의 Navigation Component를 사용하여 페이지 이동을 쉽게 구현하게 해주는 방법이다. * 공식 문서 * https://developer.android.com/guide/navigation/navigation-getting-started 1. Navigation 구성요소 Navigation Graph : 모든 Navigation 관련 정보가 하나의 중심 위치에 모여 있는 XML 리소스입니다. 단순히 말해 사용자가 앱에서 갈 수 있는 모든 플로우를 보여주고 앱 내의 Fragment를 한눈에 확인할 수 있습니다. NavHost : Navigation Graph에서 대상을 표시하는 빈 컨테이너입니다. 대상 구성요소에는 프래그먼트 ..

Kotlin 2022.11.02

[Kotlin] RecyclerView 사용 방법

RecyclerView RecyclerView 란? 아이템 뷰를 계속해서 재활용하는 방법이다. findViewById(R.id.이름) 와 같이 xml 리소스에 접근하는 비용이 큰 함수를 사용한다면 성능 저하를 야기할 수 있습니다. 대신에 뷰 홀더 클래스를 만들고 안에 변수를 선언하면 뷰에 즉시 액세스가 가능해진다. 뷰 홀더 내부에서는태그를 이용해 findViewId를 대체한다. (변수 선언 외에 딱히 해줄 것이 없다) 1. 사용 방법 1-1) Item View 생성 List 하나에 대한 아이템 뷰를 생성한다. res > layout 마우스 우측 > NEW > Layout Resource File 생성 (list_item.xml) item에 대한 height, width 설정 (width는 match_pa..

Kotlin 2022.10.31

[프로그래머스/JavaScript] Lv.2 게임 맵 최단거리

최단거리를 구하는 문제로 너비 우선 탐색(BFS) 문제 유형이다. ( 최단거리는 BFS !!) BFS 란? 현재 정점에 연결된 가까운 점들부터 탐색하는 방법으로 큐를 이용해서 구현한다. function solution(maps) { let answer = 1; let queue = []; const dx = [-1, 1, 0, 0]; const dy = [0, 0, -1, 1]; const n = maps.length; const m = maps[0].length; // 시작 위치 담기 queue.push([0, 0]); // 지나간 위치를 0으로 막는다.(시작 위치도 지나간 위치 이므로 막음) maps[0][0] = 0; // 큐에 담긴 값이 없을 때까지 반복한다. while(queue.length >..

Algorithm 2022.10.28

[Spring Boot] CORS 설정 방법

CORS CORS(Cross-Origin Resource Sharing) 란? 서로 다른 출처의 자원을 공유할 수 있도록 설정하는 권한 체제를 말한다. 따라서 CORS를 설정해주지 않거나 제대로 설정하지 않은 경우, 원하는 대로 리소스를 공유하지 못하게 된다. 출처(Origin) 란? URL 구조에서 Protocal, Host, Port를 합친 것을 말한다. 셋중 하나라도 다르면 다른 출처로 분류된다. 백엔드 서버가 실행되는 중이면 콘솔 창에서 해당 오류가 나타난다. 이는 보안을 위한 CORS 헤더 Policy를 위반했기 때문이다. 처음 리소스를 제공한 출처가(Origin)이 현재 요청하려는 도메인(Origin)과 다르더라도 요청을 허락해 주는 웹 보안 방침이다. 1. 설정 방법(모든 Controller..

Java 2022.10.27

[Spring Boot] Spring Security 패스워드 암호화 방법

Spring Cecurity Spring Security 란? 간단히 말하면 Spring의 보안(인증과 권한, 인가 등)을 담당하는 서블릿 필터의 집합이다. 서블릿 필터는 서블릿 실행 전에 실행되는 클래스들로 토큰 인증을 위해 컨트롤러 메서드의 첫 부분마다 인증 코드를 작성하는 고민을 해결하기 위해 서블릿 필터를 사용한다. 1. Spring Security 라이브러리 설치 implementation 'org.springframework.boot:spring-boot-starter-security' 2. 패스워드 암호화 사용 방법 * Source Code * https://github.com/kangilbin/TodoList/blob/master/src/main/java/com/example/demo/co..

Java 2022.10.26
반응형