전체 글 244

[프로그래머스 | Lv2] 조이스틱 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 상하이동 더하기 (A-Z) - 아스키코드를 이용해 앞에서부터 더한 것과 뒤에서부터 더한 것 중 최솟값을 찾아준다. 2. 좌우이동의 최소 구하기 1) 'A'가 연속해서 나오는 위치를 찾아준다. - temp 리스트를 만들어서 연속된 인덱스들을 리스트로 묶어서 넣어줬다. 2) 기존 방식(앞으로 쭉 가기) / 앞으로 갔다가 뒤로 돌아가기 / 뒤로 갔다가 앞으로 돌아가기 중 최솟값 - 기존 방식(앞으..

[안드로이드] AWS Rekognition API 사용하기

[Amazon Rekognition 이미지에서 텍스트 감지 (nodejs)] https://sssbin.tistory.com/185 이번엔 Rekognition API를 안드로이드에서 사용해보려고 한다. (사실 1년 전에 했던 프로젝트다...) 사용자가 카메라로 사진을 찍으면 S3 버킷에 업로드한 후 Rekognition을 수행한 결과를 반환하도록 할 것이다. ✅ AWS 설정 - IAM 계정, S3 버킷 새성 (위 링크 참고) - Amazon Cognito 자격 증명 풀 생성 - 로그인 기능 X -> 인증되지 않은 자격 증명에 대한 액세스 활성화 (Unauth) - Cognito 권한 부여 - IAM > 역할 > Cognito 자격 증명 풀 생성할 때 만들어진 역할 선택 (Unauth) > 권한 추가 -..

*/Android 2023.04.08

[프로그래머스 | Lv3] 등굣길 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 0으로 초기화된 dp 배열을 만들어주고, 집이 있는 자리는 1로 만들어준다. 그 후 1행 -> 2행 -> ... 으로 반복문을 돌면서 (오른쪽, 아래쪽으로만 가기 때문에 옆으로 건너가면서 모든 경우의 수를 계산할 수 있다.) [x-1][y], [x][y-1]의 배열을 합한 값을 더해주면 된다. # 프로그래머스 42898: 등굣길 def solution(m, n, puddles): dp = [[0]..

[안드로이드] 서버 통신 시 예외 처리가 제대로 안 될 때

안드로이드에서 예외 처리를 해주지 않으면 애플리케이션이 죽어버리기 때문에 예외 처리는 꼭 해줘야 한다. 근데 자꾸 응답 코드는 실패로 들어오는데, response가 성공으로 처리되어서 한 시간동안 헤맸다... ▼ 처음 코드 class PostNewClubService(val newClubInterface: PostNewClubInterface){ private val retrofit: GroupRetrofit = ApplicationClass.sRetrofit.create(GroupRetrofit::class.java) fun tryPostNewClub(clubInfo: GroupNewRequest){ retrofit.postNewClubReq(clubInfo).enqueue(object : Callba..

*/Android 2023.03.09

[안드로이드] 디자인 패턴 정리 (MVC, MVP, MVVM)

MVC 패턴 ① 구조 - Model: 애플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분 - View: 사용자에게 보여지는 부분 (UI) - Controller: 사용자의 입력을 받고 처리하는 부분 ② 동작 1. 사용자의 이벤트가 Controller로 들어온다. 2. Controller에서 이를 확인하고 Model에서 데이터를 업데이트한다. 3. Controller는 Model을 나타낼 View를 선택한다. 4. View는 Model로부터 데이터를 받아 UI를 갱신한다. ③ 단점 - View와 Model 사이의 의존성이 커진다. -> 유지보수가 어려움 MVP 패턴 ① 구조 - Model: 애플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분 - View: 사용자에게 보여지는 부분 (UI)..

*/Android 2023.03.09

[안드로이드] 가로 달력 커스텀 (SingleRowCalendar)

https://github.com/miso01/SingleRowCalendar GitHub - miso01/SingleRowCalendar: Android library for horizontal single row calendar. With this library, you aren't attached to Android library for horizontal single row calendar. With this library, you aren't attached to library built-in UI. You can create really beautiful and customizable UI and use selection features... github.com 완성본부터..! 사용법, 예제는..

*/Android 2023.03.08

[프로그래머스 | Lv2] 문자열 압축 (Python) - 2020 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 길이의 절반보다 큰 수로 문자열을 자르면 문자열 압축이 불가능하기 때문에 1부터 문자열 길이의 절반만 탐색한다. ==> 압축하는 문자열의 길이 (처음에 len(s)//2+1로 범위를 잡아줬다가 tc5에서 실패했다. 문자열의 길이가 1일 경우를 고려하여 +2를 해준다.) cnt(같은 문자열의 개수), result(압축된 문자열), temp(비교 문자열) 변수를 뒀다. i(압축하는 문자열의 길..

[프로그래머스 | Lv2] 괄호 변환 (Python) - 2020 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 빈 문자열일 때 그대로 반환한다. 2. '('와 ')'가 같은 개수만큼 있으면 잘라서 u, v로 분리한다. (균형잡힌 괄호 문자열) 3. u를 복사한 리스트(tmp)를 생성해서 '()'를 빈 문자열로 교체해준다. 4. u가 올바른 괄호 문자열(tmp == '')이면 v를 재귀적으로 수행한 후 u + 재귀결과 붙여서 반환한다. 5. u가 올바른 괄호 문자열이 아니면 v를 재귀적으로 수행한 후 ..

[안드로이드] Activity, Fragment LifeCycle

1. Activity LifeCycle onCreate() - 필수적으로 구현해야 한다. - 액티비티가 처음 생성되었을 때 호출된다. (딱 한 번만 호출된다.) - XML, 멤버 변수 정의, 일부 UI 구성 등을 설정한다. onStart() - 활성 상태에 들어가면 호출된다. - 액티비티가 화면에 제대로 표시되기 직전에 호출된다. (나갔다가 들어오면 또 호출된다.) - 주로 UI를 관리하는 코드를 초기화한다. - 빠르게 완료되고 바로 onResume()을 호출한다. onResume() - 액티비티가 사용자와 상호작용이 가능해질 때 호출된다. - 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 이 상태에 머무른다. - 생명주기 구성요소가 포그라운드에서 사용자에게 보이는 동안 실행해야 하는 모든 기능을 ..

*/Android 2023.03.06

[프로그래머스 | Lv2] 수식 최대화 (Python) - 2020 카카오 인턴십

https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 숫자(num), 연산자(op)를 분리해주고 연산자 우선순위 리스트(per)를 순열을 통해 만들어준다. per을 순서대로 돌면서 각 연산자에 대해 계산을 해주고, (연산자의 개수는 항상 숫자의 개수보다 하나 적음, 연산자의 idx -> 숫자[idx]와 숫자[idx+1]의 연산을 수행하면 됨) 각 우선순위에 따라 절댓값의 최댓값을 갱신해주면 된다. # 프로그래머스 67257: 수식 최대화 (2020 ..