본문 바로가기

전체 글177

[프로그래머스] 둘만의 암호 Java 풀이 Problem 둘만의 암호 Solution 소문자로만 이루어진 문자열이 s로 주어지고 index 만큼 밀어주는데 skip에 있는 알파벳은 제외하고 건너뛴 다음 최종적인 String을 반환해 주면 되는 문제이다. 1. s 를 char로 변환한다. 2. 변환된 char을 한번 밀어준 후 z보다 큰지 비교 후 z보다 클 시 알파벳의 개수만큼 26을 뺀 후 a로 만든다. 3. skip에 포함되어 있는지 체크해 준다. 3 - 1. 만약 포함되어 있으면 카운트를 시키지 않고 다시 한번 밀어준다. 3 - 2. 포함되어 있지 않으면 카운트를 시키고 index 범위만큼 2번과 3번을 반복한다. 4. 2번째 for 문을 나온 char을 answer에 저장한다. 5. 이렇게 s의 범위만큼 1 ~ 4번을 반복하면 답이 나온다.. 2023. 3. 9.
플러터 (Flutter) 앱 화면 크기 MediaQuery 이번에 회사 프로젝트로 Flutter를 진행 중에 iOS와 Android 화면이 달라서 생기는 Ui를 해결하기 위해서 MediaQuery에 대하여 알아보자. MediaQuery란, MediaQuery는 기기의 화면 너비나 높이를 가져오거나, 화면의 방향 정보를 얻을 때 주로 사용된다. 이를 사용하면 앱이 실행되는 디바이스의 크기에 따라 레이아웃을 조정할 수 있다. 사용하게 된 이유 이번에 bottomNavigationBar를 작업 중에 안드로이드와 iOS의 차이를 발견하게 되었고 iOS는 iPhone X와 같은 최신 모델에서는 스크린 하단에 Home Indicator가 생기면서 뷰가 스크린에 겹치는 현상이 생긴다. 그림 1) 안드로이드 하단 바 그림 2) iOS 하단 바 위의 그림과 같이 하단바에서 iO.. 2023. 3. 7.
[LeetCode - Data Structure II] 15. 3Sum Problem Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0. Notice that the solution set must not contain duplicate triplets. Example 1: Input: nums = [-1,0,1,2,-1,-4] Output: [[-1,-1,2],[-1,0,1]] Explanation: nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0. nums[1] + nums[2] + nums[4] = 0 + 1.. 2022. 11. 10.
[LeetCode - Data Structure II] 169. Majority Element Problem Given an array nums of size n, return the majority element. The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array. Example 1: Input: nums = [3,2,3] Output: 3 Example 2: Input: nums = [2,2,1,1,1,2,2] Output: 2 Constraints: n == nums.length 1 2022. 11. 8.
[LeetCode - Data Structure II] 136. Single Number Problem Given a non-empty array of integers nums, every element appears twice except for one. Find that single one. You must implement a solution with a linear runtime complexity and use only constant extra space. Example 1: Input: nums = [2,2,1] Output: 1 Example 2: Input: nums = [4,1,2,1,2] Output: 4 Example 3: Input: nums = [1] Output: 1 Constraints: 1 2022. 11. 6.
RxJava란 이번 포스팅에는 RxJava에 대한 이야기를 하려고 한다. 팀 프로젝트로 어플을 만드는 과정에서 Azure Face API를 사용하게 되었고 오픈소스를 찾으면서 하다 보니 비동기 AsyncTask를 사용하였는데, RxJava로 대처하게 되면서 RxJava에 공부를 하게 되었다. RxJava란 RX는 Reactive eXtension의 약자로, Micorsoft가 .NET에서 사용하기 위해 만든 Open Source Library입니다. 그리고 2013년 2월 넷플릭스에서 처음 소개되었고, 2016년 10월 RxJava2를 발표하였으며 가장 최근에 2020년 2월에 RxJava3을 배포되었다. Rx공식문서에 따르면 ReactiveX는, ReactiveX is a library for composing as.. 2022. 3. 15.
AsyncTask 정지...(deprecated) AsyncTask 정지 이번 포스팅에는 AsyncTask가 deprecated 된 것에 대한 이야기를 하려고 한다. 팀 프로젝트로 어플을 만드는 과정에서 Azure Face API를 사용하게 되었고 오픈소스를 찾으면서 하다 보니 비동기 AsyncTask를 사용하게 되었다. 하지만 이렇게 안드로이드 스튜디오에서 Android11, SDK30 이상에서 사용이 정지된 것을 확인하였고 왜 AsyncTask가 정지되었는지 알아보게 되었다. 아래는 안드로이드 오픈소스 헤더 부분에 달려있는 주석이다. * AsyncTask was intended to enable proper and easy use of the UI thread. However, the most * common use case was for integ.. 2022. 3. 8.
MVVM패턴 이번에 인턴을 준비하는 과정에서 MVVM패턴을 사용하는 회사가 있어서 MVVM패턴을 알아보고자 한다. MVVM패턴이란, MVVM 패턴은 마틴 파울러의 Presentation 모델 패턴에서 파생된 디자인 패턴입니다. MVVM 패턴의 목표는 비즈니스 로직과 프레젠테이션 로직을 UI로부터 분리하는 것입니다. 비즈니스 로직과 프레젠테이션 로직을 UI로부터 분리하게 되면, 가독성, 테스트, 유지 보수, 재사용이 쉬워집니다. 1) 구조 Model Model은 사용하려는 데이터를 가지고 있는 비시각적 클래스. 따라서 모델은 일반적으로 비즈니스 및 유효성 검사 논리와 함께 데이터 모델을 포함하는 앱의 도메인 모델을 나타내는 것. 일반적으로 데이터를 액세스하거나 캐싱이 필요한 서비스 또는 리포지토리와 함께 사용. Vie.. 2022. 3. 7.
반응형