문제 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 괄호는 () 모양이 되어야 정상적인 형태이다. 하나씩 쌓일텐데 괄호의 시작은 "("이므로 "("보다 ")"모양이 많아진다면 잘못된 괄호가 될 것이다. 따라서 "("가 들어왔을땐 +1, ")"가 들어왔을땐 -1을 해줘서 count가 음수인 경우엔 닫히는 괄호가 더 많은 것이므로 false를 반환하도록 했따. 또한, count가 0이어야만 올바른 괄호이므로 마지막에 따로 조건도 넣어주었다...
Realm을 사용하다보면 컬럼을 추가하거나 삭제하는 등의 과정이 필요한 경우가 있음. 모델 클래스 안에서 프로퍼티를 추가, 삭제하거나 이름을 변경하고 빌드를 하면 오류가 남 변화로 인해 스키마의 버전이 바뀌었기때문임 그래서 테이블에 변화가 생기는 경우엔 마이그레이션이 필요함. Migration 현재의 운영 환경으로 부터 다른 운영 환경으로 옮기는 작업을 일반적으로 마이그레이션이라고 하며, 데이터베이스에서만 사용되는 개념이 아님. 데이터베이스에서는 스키마 버전을 관리하기 위해 마이그레이션을 사용. 마이그레이션을 통해 데이터 구조를 맘대로 바꿀 수 있음. 두 컬럼의 값을 합쳐서 새로운 컬럼 안에 값으로 넣어줄 수도 있고, 컬럼 추가, 컬럼 삭제, 타입 변경 등 전부 가능함. 근데 마이그레이션은 꼭 필요한 경..
특정 푸시를 눌렀을 때 특정 화면으로 전환 따로 로직을 설정하지 않으면 단순히 앱이 켜지는 동작만 함. 하지만 코드를 작성해준다면 특정 화면으로 전환시킬 수 있음. 전환시키기 위해서는 우선 현재 사용자가 머물고 있는 최상단 뷰컨트롤러를 알아야함. extension UIViewController { var topViewController: UIViewController? { return self.topViewController(currentViewController: self) } func topViewController(currentViewController: UIViewController) -> UIViewController { if let tabBarController = currentViewCont..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12981 풀이 단어를 차례대로 확인해가면서 주어진 조건에 어긋나는 경우만 찾아주면 쉽게 해결할 수 있는 문제였다. 나는 for문을 이용해 풀었고, 그 안에 두 가지 조건을 판단하는 구문만 추가하였다. 먼저, 같은 단어를 말하는 경우엔 count를 이용하여 판단해주었다. 말한 단어를 담고 있는 배열의 count와 Set의 count를 비교한다면, 중복되는 단어가 있는 경우에 다를 것이다. 다음으로 잘못된 단어를 말한 경우이다. 이전 단어의 마지막 캐릭터와 새로운 단어의 첫번째 글자를 비교해서 다른 경우에도 return을 해주었다. 이때, 첫번째 순서인 경우에는 비교할 것 없이 값만 바꿔주면되기때문..
1.1.0으로 업데이트 하자마자 문제점이 더 발견되어 바로 업데이트를 준비했다. 1.2.0에서 업데이트 된 사항은 아래와 같다. 설정화면에서 현재 사용자의 앱 버전 정보 확인 셀에 추가할까했지만, 사용자들이 많이 궁금해할 것 같지 않을 것 같았다. 또한, 셀에 넣게 되면 뭔가 디자인이 마음에 안들었다. 그래서 그냥 잘 안보이는 하단에 넣어주었다. private var version: String? { guard let dictionary = Bundle.main.infoDictionary, let version = dictionary["CFBundleShortVersionString"] as? String else { return nil } return version } 백업, 복구 로직 문제점 개선 기..
- Total
- Today
- Yesterday