본문 바로가기

분류 전체보기179

[LeetCode] 217. Contains Duplicate with Swift 배열에서 반복되는 수 찾기 Contains Duplicate - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 217번 문제는 nums는 int형 숫자의 배열이고 이 배열에서 반복되는 값이 있을 때 true를 반환 그렇지 않은 경우 false를 반환하는 것입니다. 언뜻 보기에 배열의 모든 수를 탐색해야 할 것 같지만 그렇게 하면 시간 효율성 측면에서 낮은 점수를 받을 수 밖에 없습니다. 차근차근 배열에서 중복된 값을 찾기 위해서 어떤 알고리즘과 함수를 써야 할지 알아봅시다. 1. 순수한 .. 2020. 9. 17.
[Swift] 완전 간단한 tutorial -> URLSession으로 json api 에서 파싱까지 구글 검색하다가 무료 json 사이트를 발견했습니다☺️ 6가지 종류의 api를 제공하기 때문에 공부 용으로 간단하게 구현하고자 할때 사용하면 좋을 것 같아요 우선 제가 사용한 것은 'Posts' 입니다. (지금 포스트 말론의 노래를 들으며 포스트맨으로 포스트 api 구조를 보고 있습니다😎 Postman 강추) 구조를 보면 Dictionary가 Array로 들어오고 있습니다 즉 처음에는 key값이 없어용 우선 UI나 기능적인 부분은 신경쓰지 않고 JSON 데이터 부터 파싱해 보죠 구조가 간단하기 때문에 구조체도 간단하게 작성해 줍니다. 이때 Decodable 이란 디코딩 인코딩을 생각해 주시면 됩니다 Encodable은 가지고 있는 데이터를 JSON으로 변환해 줄때 Decodable은 JSON으로 부터 가.. 2020. 9. 12.
[Swift] UINavigationController 사용하기 🍪 Storyboard 에서 임베드 하기 Storyboard > Editor > Embed in > Navigation Controller 🍪 Programmatically import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { self.window = UIWindow(frame: UIScreen.main.bound.. 2020. 9. 8.
[iOS, Swift] AppDelegate에서 window의 rootViewController 설정하기 Swift 프로젝트를 처음 생성하고 빌드하여 실행하면 첫화면이 Main.storyboard로 설정되어 있습니다. 이때 기본적으로 파일에 있는 ViewController.swift 말고 자신이 생성한 뷰 컨트롤러를 window의 root view controller로 설정하려면 어떻게 해야 할 까요? 또한 앱 시작과 동시에 뷰 컨트롤러를 로드하면서 뷰 컨트롤러에서 필요한 초기값이 있다면?! 이때는 AppDelegate에 코드 몇 줄을 추가해 주어야 합니다. 제가 현재 공부하고 있는 책은 the big nerd ranch guide ios programming의 몇 년 지난 책입니다. 책 대로 따라하니 xcode가 예전과 바껴 오류가 생기더라구요. 그래서 이번에 예전 xcode에는 있던 window도 선언해.. 2020. 8. 27.
[Android] 카드뷰 레이아웃 에러 or Refactor > Migrate to AndroidX android 카드 뷰 레이아웃을 사용하려고 dependency를 추가하는데 이런 오류가 발생했다. 이럴 땐 상단의 탭에서 Refactor을 클릭 Migrate to AndroidX 를 눌러주면 이런 창이 나옵니다. Migrate클릭 하단 창에서 Do Refactor 클릭해 줍니다. 그러면 오류가 깔끔히 사라집니다! Do Refactor 버튼까지 눌러주셔야 되요! 2020. 8. 26.
[iOS] 뷰 컨트롤러(View Controller)의 생명 주기 Animation 공부할려고 보니 뷰 컨트롤러의 생명 주기에 대해 알아보면 좋을 것 같더라구요! 뷰 뜨자마자 애니메이션을 실행하고 싶은데 생명 주기 관련된 콜백 메소드가 많아서 어디에 넣으면 좋을 까 하다가 생명 주기를 정리해 봤습니다. 사실... 이전에 옵젝씨 공부하면서 슬쩍 알고 있기는 한데 정리해두면 나중에 기억이 안날때 참고하려고 적어봅니다.. 🌵실험해보기 스토리 보드에 뷰 컨트롤러를 추가합니다. 버튼을 누르면 다른 뷰 컨트롤러로 이동하도록 간단하게 만들어 주도록 하겠습니다. (스토리 보드 사용한지 얼마 안되서.. 스린이 입니다) SubViewController.swift 파일을 추가해 줍니다 이동할 뷰 컨트롤러를 선택해 주시고 identity 인스펙터에서 class를 방금 생성한 스위프트 파일과.. 2020. 8. 21.
[iOS, Swift] Localization(로컬라이징, 현지화) 현지화, 지역화, 로컬라이징 등등으로 다양하게 불리고 있는데 쉽게 말해서 다른 나라에서 앱을 실행하면 그 나라의 언어에 맞게 애플리케이션의 언어를 설정해 주는 기능입니다~ 처음 배울 때는 이런 기능이 필요할까 싶었는데 글로벌 앱을 만들고자 한다면 필수일 것 같아 정리해보기로 했습니다! ** 본 내용은 iOS Program 6th (The Big Ranch Guide) 영어판을 보고 공부한 것이라 틀린 내용이나 오역이 있을 수 있습니다. 틀린 내용이나 지적있으시면 꼭 댓글 부탁드립니다! 🌐 view를 만들어 주는 방법에는 Story board를 사용하는 방법과 Programmatically 즉, 코드로 구현해 주는 방법이 있듯 지역화 또한 위 두가지 방식에 대응하는 방법이 존재합니다. 우선 첫 번째로 St.. 2020. 8. 19.
[Android] 안드로이드 구성 요소 * 해당 내용은 공부하면서 알게된 사실을 정리했습니다. 틀린 부분이 있거나 문제가 있다면 댓글로 알려주세요! +) 메인 스레드 생성 시점 : 애플리케이션 실행 하는 순간 -> UI 요소 갱신, 변경 일반 스레드 생성 시점 : 시스템이나 사용자에 의해 이후에 생성 4대 요소(Component)란 - Activity - Service - Broadcast Receiver - Content Provider 그 외에 Intent, view, Fragment 등이 있음 액티비티(Activity) - UI 화면을 나타냄 -> 즉 사용자가 앱을 실행 했을 때 보게 되는 인터페이스 화면 구성 요소를 가지고 있음 - 하나의 애플리케이션은 여러 액티비티를 가질 수 있음 - 액티비티의 생성은 메인 스레드이며 여기서 액티비티.. 2020. 8. 17.
[Android, Kotlin] 데이터 클래스와 기타 클래스 Do it! 코틀린 프로그래밍 책을 참고 및 인용 하여 작성 되었습니다. 책에 없는 주관적 내용이 있을 수 있습니다 DTO를 사용하는 이유 DTO는 일종의 표준과 같은 약속 -> 전송하거나 받고자 하는 어떤 요소든 데이터를 쉽게 다룰 수 있음 뷰란 mvc모델에서 뷰란 사용자와 상호작용을 수행함 모델이란 mvc모델에서 모델이란 데이터의 표현을 위해 생성 데이터 클래스의 선언 코틀린에서는 데이터 클래스를 제공함 - 주생성자는 최소한 하나의 매개변수 - 주생성자의 모든 매개변수는 val, var - abstract, open, sealead, inner 키워드 사용 불가 데이터 클래스가 자동 생성하는 메서드 data class Customer(var name: String, var email: String) .. 2020. 8. 9.
[Kotlin 20200805] 프로퍼티 초기화 06_1 프로퍼티 접근 프로퍼티와 필드의 차이점 자바의 경우 클래스 내에서 선언한 변수를 '필드'라고 하고 코틀린에서는 '프로퍼티'라고 칭함. 프로퍼티의 경우 접근 매서드인 getter와 setter를 기본적으로 가지고 있기 때문에 자바의 필드와 다른 명칭을 사용하는 것. 코틀린에서는 각 프로퍼티에 대해 접근 메서드를 자동으로 생성하며 주 생성자에 의해 매개변수를 정의할 수 있으므로 간단하게 코딩할 수 있다는 장점이 있다. class ClassName(var a: String, var b: Double) // 클래스 정의와 함께 주 생성자에서 매개변수를 정의함 코틀린에서의 접근 메서드 - val 로 선언한 프로퍼티는 getter만 가능. 값 바꾸는 것 불가하기 때문에 - var은 내부에서 접근 메서드가 .. 2020. 8. 5.
[Kotlin 20200804] 객체 지향 프로그래밍 - 인터페이스 참고 및 인용 도서 : Do it! 코틀린 프로그래밍 인터페이스에서 참조 - 인터페이스 참조하는 클래스 -> 인터페이스 가이드에 따라 내용 구현 - 다중 상속은 불가능 하지만 다중 인터페이스 지정은 가능 - 여러 인터페이스에 의해 메서드나 프로퍼티 명이 중복되는 경우 -> 앵글 브래킷()을 사용 open class A { open fun a() = println("class a and method a") fun b() = println("class a and method b") } interface B { fun a() = println("interface a method a") fun c() = println("interface b method b") } class C : A(), B{ override.. 2020. 8. 4.
스코빌 지수 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같�� programmers.co.kr 프로그래머스의 코딩테스트 연습에서 카테고리를 잘 보면 사용해야 하는 자료 구조가 적혀 있다. 이번에 하게 된 것은 힙(Heap) > 더 맵게 이다. 작은 수와 그 다음 작은 수를 사용해서 연산을 하고 다시 리스트에 넣어서 최소값 기준에 대한 조건만 맞추면 되겠다 싶었으나 효율성에서 과감히 아웃당했다. 그렇다면 왜 여기서 '힙'을 제시한 걸까? 스택 구조를 사용하면 안되는 걸까? def solution(scovile, k): answer = 0 w.. 2020. 8. 3.