분류 전체보기
-
백준 14888 연산자 끼워넣기 JAVA(백 트래킹)Algorithm 2021. 11. 17. 17:31
아주 애먹은 문제였기 때문에,, 따로 포스팅 할 가치가 있는 문제였습니다. 제가 짠 코드가 빠른 실행 시간을 보장하지는 않지만, 일반적인 백 트래킹 문제들과 비슷한 코드 구조를 가지고 있기 때문에 좀 더 쉽게 이해 할 수 있는 코드라고 생각하기에 포스팅을 하게 되었습니다. 입력받은 N-1개의 연산자를 백 트래킹을 이용해 완전탐색한 후, 모든 연산자 수열의 경우의 수에 대하여 각각 합을 구해 최댓값과 최솟값을 찾아냅니다. ex ) 연산자 배열이 (1, 0, 1, 0)일 경우 경우의 수 : "+*", "*+" 해당 String 변수를 ArrayList에 모두 넣어준 후, ArrayList에 들어있는 연산자 수열들을 이용해 수들의 합을 완전탐색 합니다. 백 트래킹 방식이긴 하지만, 백 트래킹이 수행되는 요소들..
-
문제 풀이들Algorithm 2021. 9. 14. 15:01
notion.so에 따로 정리해가면서 올린 후 tistory로 임포트 시키는것이 보통 귀찮은일이 아니라, github repo에 업로드하는 형식으로 기록하는게 좋다고 생각했다. 그동안 공부 기록들을 포스팅하지 않은 이유는 따로 기록해둘 깨달음(?)이 없었기 때문인데, 오늘 아주 사소하지만.. 중요한것을 깨달았다. 파이썬 내장 함수들도 시간복잡도가 큰 경우가 있다는것.. 내장 함수들은 최선의 올기르즘으로 시간복잡도가 대부분 n이 넘지 않는다고 생각하고 있었지만, max나 min과 같은 함수들은 O(n)이기 때문에 반복문에서 해당 함수들을 사용한다면 O(n^2)의 시간복잡도를 가지게 되므로 시간초과가 뜰 가능성이 매우 높다. min 함수의 시간복잡도를 생각하지 않고 짠 코드 import sys N = int..
-
알고리즘Algorithm 2021. 9. 1. 14:29
공부한것들 정리 Question 플랫폼 난이도 체감 난이도 Created At Updated At 문제 Two Sum LeetCode Easy Medium @2021년 8월 24일 오후 4:07 @2021년 8월 24일 오후 4:09 Add Two Numbers LeetCode Medium Medium @2021년 8월 24일 오후 4:03 @2021년 8월 29일 오후 7:03 Reverse Integer LeetCode Easy Easy @2021년 8월 24일 오후 4:33 @2021년 8월 29일 오후 7:03 Palindrome LeetCode Easy Easy @2021년 8월 25일 오후 2:58 @2021년 8월 29일 오후 7:04 Longgest common prefix LeetCode..
-
알고리즘Algorithm 2021. 8. 27. 16:44
공부한것들 정리 Question 플랫폼 난이도 체감 난이도 Created At Updated At 문제 Two Sum LeetCode Easy Medium @2021년 8월 24일 오후 4:07 @2021년 8월 24일 오후 4:09 Add Two Numbers LeetCode Medium Medium @2021년 8월 24일 오후 4:03 @2021년 8월 24일 오후 4:33 Reverse Integer LeetCode Easy Easy @2021년 8월 24일 오후 4:33 @2021년 8월 24일 오후 4:50 Palindrome LeetCode Easy Easy @2021년 8월 25일 오후 2:58 @2021년 8월 25일 오후 3:02 Longgest common prefix LeetCode..
-
Caffeine Manage - Firebase Authentication 추가App 2021. 8. 19. 20:50
이전에 올렸던 프로토타입에서, 사용자별 데이터를 각각 데이터베이스로 관리하기 위해서 로그인 시스템을 추가했다. 연동해두었던 Firebase의 기능중 인증 기능을 사용했다. Firebase Authentication을 추가하기위해 implementation을 추가했다. implementation 'com.firebaseui:firebase-ui-auth:7.2.0' 그 후, firebase doc를 참고하여 LoginActivity를 작성해주었다. LoginActivity.kt (Kotlin) class LoginActivity : AppCompatActivity(){ private val signInLauncher = registerForActivityResult( FirebaseAuthUIActivit..
-
CaffeineManageApp 2021. 8. 14. 15:22
앱 이름 : CaffeineManage 기능 : 그날 먹은 카페인 총량을 저장, 기록해주는 앱 프로젝트 시작일 : 7월 27일 -> 각 프랜차이즈별 커피 이름을 데이터베이스화시켜 미리 등록해둘 수 있게함. 현재까지 구현한 프로토타입 1번탭 (카페인) : 카페인 기록 창 2번탭 (달력) : 그날 먹은 카페인의 총량을 github에서 볼 수 있는 heatmapcalendar와 같이 표시해줌 3번탭 (검색) : 구현하지 않아서 사진에 넣지 않았음. 지도 데이터, GPS를 기반으로 주변에 있는 카페들을 출력, 해당 카페에 무슨 메뉴들이 있는지 데이터를 가져올 수 있도록 함. 이를 통해 내가 먹은 메뉴를 미리 등록해둘 수 있음. 4번탭 (설정) : google 로그인을 통한 데이터의 개인화, 로그아웃 기능등. 추..
-
-
카카오톡 학식봇 만들기(DynamoDB, 파라미터 검증 API) - 12App 2021. 7. 21. 17:01
menu_save를 완성했다. 지난번부터 계속해서 고민했던것은, 오늘 국밥 먹었어, 오늘 라면 먹었어, 오늘 중식 먹었어 와 같이 여러 종류의 메뉴들중 모호하게 사용자가 발화했을 때 봇이 대처하지 못하는 상황이다. 이 상황은 카카오 오픈빌더의 파라미터 검증 API를 사용해서 해결했다. 카카오 i 오픈빌더 도움말에는 이 파라미터 검증 API에대해서 간략하게 설명이 되어있는데, 오픈빌더 링크 https://i.kakao.com/docs/key-concepts-parameters#%EC%98%88%EC%95%BD%EB%90%9C-response-json-%EA%B5%AC%EC%A1%B0 위의 사진이, 검증 API로 넘어오는 request의 형태이다. 위 도움말을 보고, request에서 value["resol..