반응형

전체 글 270

[프로그래머스/JavaScript] Lv.2 수식 최대화

재귀 함수를 통해 답을 도출 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 사용 가능한 연산자를 반복하는 DFS 함수, 수식에 해당 연산자를 포함하고 있는 값들을 계산하는 재귀 함수를 사용하여 해당 문제를 풀었다. let answer = []; function solution(expression) { // 1) 사용 가능한 연산자를 배열에 담는다. const opts = ["+", "-", "*"]; // 2) 문자열을 연산자를 구분으로 배열로 변환한다. 해당 배열은 구분 연산자 또한 포함한다. let cal = expression.split(..

Algorithm 2022.11.24

[JavaScript] 정규표현식을 사용한 repalce, replaceAll 치환 방법

replace() 함수를 이용하여 문자열의 특정 문자열을 다른 문자열로 변환할 수 있다. 먼저 검색되는 1개의 문자열만 변환하지만, 정규 표현식을 이용하여 일치하는 모든 문자열을 변환할 수 있다.  정규표현식 이란?문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리할 수 있도록 하는 수단이다.  1. 정규 표현식 패턴1-1) 매칭 패턴패턴의미a-zA-Z영어알파벳(-으로 범위 지정)ㄱ-ㅎ가-힣한글 문자(-으로 범위 지정)0-9숫자(-으로 범위 지정).모든 문자열(숫자, 한글, 영어, 특수기호, 공백 모두! 단, 줄바꿈X)\d숫자\D숫자가 아닌 것\w영어 알파벳, 숫자, 언더스코어(_)\W/w 가 아닌 것\sspace 공백\Sspace 공백이 아닌 ..

JavaScript 2022.11.23

[Android] Firebase AdMob 광고 적용 방법

Firebase 프로젝트가 생성되어 있어야 한다. 2022.11.21 - [Kotlin] - [Android] Firebase 프로젝트 생성 및 안드로이드 스튜디오 적용 방법 1. 애드몹 가입하기 [참여] → [AdMob] → [AdMob 가입] 클릭 이후 본인 인증 화면에서 국가, 시간대, 결제 통화를 설정하고 약관의 동의합니다 1-1) 구글 계정 연동 계정이 완료되었음을 확인하고 이메일 수신 여부를 모드 ‘아니요’로 설정 2. 애드몹 등록하기 2-1) 홈 → [시작하기] 클릭 2-2) 플랫 폼 [Android] 클릭 → 아직 앱스 토오에 올리지 않았으므로 [아니요] 선택 2-3) 앱 추가 사용자 측정항목은 해제한다. 3. 광고 단위 추가하기 : 배너 광고 3-1) 배너 광고 선택 3-2) 배너 단위 ..

Kotlin 2022.11.22

[Android] Firebase 프로젝트 생성 및 안드로이드 스튜디오 적용 방법

FireBase란? FireBase는 모든 플랫폼을 프로젝트 구축 시 자동적으로 만들어 줍니다. 또한, 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없으며 도메인을 구입할 필요도 없고, 개발하는 동안에는 서버를 구입할 필요도 없습니다. - FireBase의 대표적인 기능 인증, 데이터베이스, 스토리지, 원격 구성, 푸시 알람 등 1. FireBase의 장점 1) 인증 시스템을 지원 - 로그인을 담당하는 부분 2) NoSQl 기반의 DB - RTSP(Real Time Stream Protocol) 방식의 데이터베이스를 지원(실시간으로 데이터들을 전송해주는 방식) 3) 원격 구성을 지원 - 앱의 환경을 원격으로 구성 가능(앱의 배경, 테마 및 폰트, 업데이트 창 등) 4) 콘솔을 제공 - 서버 관리자 ..

Kotlin 2022.11.21

[프로그래머스/JavaScript] Lv.2 타겟넘버

해당 문제는 DFS문제로 경우의 수를 구하는 문제이다. * BFS 사용 예 - 최단거리, 최소 횟수, 미로, 탐색 등 * DFS 사용 예 - 경우의 수, 이동 과정에 제약 있음 등 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43164 문제 풀이 let answer = 0 function solution(numbers, target) { // 1) DFS 함수 최초 실행 합(sum), 인덱스(idx) 0으로 셋팅 dfsSum(0, numbers, 0, target); return answer; } function dfsSum(sum, numbers, idx, target) { // 2) 인덱스(idx)가 배열 길이와 같아지면 return한다..

Algorithm 2022.11.20

[프로그래머스/JavaScript] Lv.2 숫자의 표현

해당 문제는 완전 탐색을 통해 답을 도출하는 문제이다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12924 완전 탐색 이란? '무식하게 푼다(brute-force)'는 컴퓨터의 빠른 계산 능력을 이용해 가능한 모든 경우의 수를 체크해서 정답을 찾는 방법이다. 1. 완전 탐색 기법을 활용하는 방법 1) 해결하고자 하는 문제의 가능한 경우의 수를 대략적으로 계산한다. 2) 가능한 모든 방법을 다 고려한다. - Brute Force 기법 - for문 / if문을 활용 - 순열(Permutation) - n개의 원소 중 r개의 원소를 중복 허용 없이 나열하는 방법 - 재귀 호출 - 비트 마스크 - 2진수 표현 기법을 활용하는 방법 - BFS, ..

Algorithm 2022.11.19

[프로그래머스/JavaScript] Lv.2 숫자 카드 나누기

해당 문제는 최대 공약수를 구해 비교하는 문제이다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/135807 1. 유클리드 알고리즘(유클리드 호제법) 유클리드 호제법은 두 자연수 사이의 최대공약수를 구하는 알고리즘이다. * 정의 어떤 자연수 a, b가 있을 때 (a > b), 두 수의 최대공약수는 a를 b로 나눈 나머지와 b의 최대공약수와 같다. 1) 두 수 중에서 큰 수를 작은 수로 나눈다. 2) 만약 나누고 난 나머지가 0이라면 작은 수가 최대공약수이다. 3) 만약 나머지가 0 이 아니라면, 작은 수를 다시 나머지로 나눈다. 4) 이를 반복해서 나머지가 0 이 될 때, 그 수가 바로 두 수의 최대공약수이다. 2. 문제 풀이 // arra..

Algorithm 2022.11.17

[Kotlin] 스레드(Thread)의 개념 및 runOnUiTread 사용 방법

Thread Thread는 메인 스레드와 백그라운드 스레드로 나누어진다. UI 변경은 메인 스레드(UI 변경 스레드)에서만 가능하고, 백그라운드 스레드는 네트워크 작업, 데이터베이스 작업, 계산량이 많은 작업을 한다. 메인 스레드(UI 스레드) 란? 앱이 처음 시작되면 시스템이 스레드 하나를 생성하는데 이를 메인 스레드라고 한다. 메인 스레드의 역할은 크게 두 가지로 액티비티의 모든 생명 주기 관련 콜백을 실행을 담당하거나, 버튼, 에디트텍스트와 같은 UI 위젯을 사용한 사용자의 이벤트와 UI드로잉 이벤트를 담당한다. 그렇기 때문에 UI 스레드라과 불린다. 백그라운드 스레드 란? 작업량이 큰 연산이나, 네트워크 통신, 데이터베이스 쿼리 등은 처리에 긴 시간이 걸린다. 이 모든 작업을 메인 스레드의 큐에 ..

Kotlin 2022.11.16

[Android] 앱 배포(2) 구글 플레이 스토어 앱 출시 및 애드몹 광고 등록

앱 출시 및 애드몹 광고 등록 구글 플레이 스토어 출시 방법은 작은 디테일들이 꽤 자주 바뀐다. 다른 부분이 있다면 구글에서 출시 따라 하고, 해당 내용은 참고만 한다. * 공식 문서 (출시 체크리스트) * https://developer.android.com/distribute/best-practices/launch/launch-checklist 1. 구글 개발자 계정 생성하기 https://play.google.com/console/about/ 구글 플레이 콘솔 홈페이지 → [Play Console로 이동] 버튼 클릭 개발자 계정 생성한다. [계정 생성 및 결제]를 클릭해 결제를 진행 개발자 계정 결제는 딱 한 번만 하면 된다.(참고로 애플 스토어는 매년 13만원 가량을 결제) 2.구글 플레이 콘솔에..

Kotlin 2022.11.15

[Kotlin] Retrofit 사용한 API 통신 방법

Retrofit Retrofit이란? 안드로이드와 자바를 위한 타입 안전한 HTTP 클라이언트이다. (서버와 통신할 때 거의 필수) API로 정보를 받아오기 때문에 HTTP클라이언트이다. 요청 바디 값(Request Body)과 응답 바디 값(Response Body)을 원하는 타입으로 안전하게 바꾸어주기 때문에 타입 안전이다. 네트워킹 관련 스레딩, 캐싱, 에러 핸들링, 응답 파싱에 필요한 보일러 플레이트를 줄여주고 개발자가 읽기 편한 코드를 작성할 수 있게 도와준다. 보일러 플레이트(BoilerPlate) 코드란 ? 모든 코드를 작성하기 위해 항상 필요한 부분을 의미한다. BoilerPlate는 다음 4가지로 구성되어 있다. - Import : 필요한 코드를 불러들이는 부분 - Component : ..

Kotlin 2022.11.14
반응형