📎 간략한 문제 정리 각 지역은 주유소를 가지고 있고, 주유소마다 기름의 가격은 다릅니다. 위의 그림에서는 각 지역마다 기름 가격이 5, 2, 4, 1원이고 지역간 이동시 필요간 기름의 양이 2, 3, 1 리터입니다. 왼쪽 시작점에서 오른쪽 도착점까지 이동하는데 필요한 기름의 최소 비용을 구하는 문제입니다. 📈 문제 분석 기름통의 크기가 한정되어있다면 조금 어려운 문제일 수 있겠지만 각 지역에서 기름을 무제한으로 구매 가능하므로 구매 조건만 생각하면 될 문제입니다. 🙋♂️ 내가 처음 생각한 해결 방법 시작점에서 다음 지역의 기름값을 보고 만약 현재 위치 가격이 더 높다면 다음 지역 이동까지 필요한 만큼의 기름만 구매하고 넘어갑니다. 하지만 지금 지역의 기름가격이 더 낮다면 다다음 지역까지 거리만큼 기름..
📎 간략한 문제 정리 두개의 전봇대에 숫자가 매겨져 있습니다. 예를 들어 아래와 같이 전깃줄이 연결되어 있습니다. 위에서 1-8 연결선과 3-9 연결선, 4-1 연결선 만 제거하면 겹치는 선이 없어집니다. 이렇게 겹치지 않기 위해 제거해야하는 최소 전깃줄의 수를 출력하는 문제입니다. 📈 문제 분석 주어진 전깃줄 연결 상태를 리스트로 표현해보겠습니다. [(1, 8), (2, 2), (3, 9), (4, 1), (6, 4), (7, 6), (9, 7), (10, 10)] 위에서 보면 없애야할 전깃줄을 제거하고 보면 튜플의 1번 인덱스 요소가 오름차순으로 정렬되어 있는 것으로 볼 수 있습니다. [(2, 2), (6, 4), (7, 6), (9, 7), (10, 10)] 🙋♂️ 내가 처음 생각한 해결 방법 L..
🎤 Swift 프로그래밍 언어 - Part 1 🕹 Concentration Game UI 변경 2강까지 완성한 게임의 UI는 괜찮은 것 처럼 보입니다. 하지만 화면을 회전하거나 다른 기기에서 작동시키면 화면이 이상하게 나오는 것을 확인할 수 있습니다. 위의 그림처럼 왼쪽 위를 기준으로 UI가 배치되는 것을 확인할 수 있습니다. 이것을 해결하기 위해서 Stack View를 활용해 보겠습니다. 먼저 묶어주고 싶은 요소들을 블록처리한 후 아래 그림처럼 버튼을 클릭합니다. 이제 4개의 버튼이 하나의 View에 담겼습니다. Spacing을 standard로 해주고 fill equally 옵션을 준 후 아래 두줄에도 같은 작업을 진행합니다. 그 결과로 가로로 3줄의 Stack View가 생겼습니다. 이 Stac..
📎 간략한 문제 정리 주어진 재귀 함수가 속도 이슈 없이 작동하도록 만듭니다. if a 20, then w(a, b, c) returns: w(20, 20, 20) if a < b and b < c, then w(a, b, c) returns: w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c) otherwise it returns: w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1) 📈 문제 분석 전형적인 DP 문제인 피보나치와 유사한 형식입니다. 단순 반복이 아니라 결과를 저장하면서 꺼내오는 구조로 작성해야 합니다. 🙋♂️ 내가 처음 생각한 해결 방법 pseudo code에 나온 그대로 구현하지만 결과를 ..
Control Event(컨트롤 이벤트) 종류 컨트롤이 발생했을 때 그 컨트롤의 종류를 의미하며 UIControl에 Event라는 타입으로 정의되어 있습니다. 컨트롤 객체에 발생할 수 있는 이벤트의 종류 이벤트 종류 설명 표현법 touchDown 컨트롤을 터치했을 때 발생하는 이벤트 UIControl.Event.touchDown touchDownRepeat 컨트롤을 연속 터치(반복) 할 때 발생하는 이벤트 UIControl.Event.touchDownRepeat touchDragInside 컨트롤 범위 내에서 터치한 영역을 드래그 할 때 발생하는 이벤트 UIControl.Event.touchDragInside touchDragOutside 터치 영역이 컨트롤의 바깥쪽에서 드래그 할 때 발생하는 이벤트 U..
📎 간략한 문제 정리 N개의 좌표 X1~XN이 있을 때 X1'는 X1보다 작은 서로다른 요소의 개수를 의미합니다. 📈 문제 분석 주어진 배열을 정렬한 후 문제를 처리하면 쉽게 접근할 수 있습니다. 🙋♂️ 내가 처음 생각한 해결 방법 가장 단순하게 생각해보면 전체를 순회하며 기준을 세우고, 자신을 제외한 다른 요소들을 검색해보며 더 작은 값이면 count += 1의 로직을 구현할 수 있습니다. 하지만 이것은 O(N^2)이며 주어진 조건 1 Stack의 전형적인 문제 중 특정 요소의 왼쪽 값 중 자신보다 크면서 인덱스가 가장 큰 요소를 찾는 문제가 있습니다. 이 문제처럼 왼쪽만 관찰하며 더 큰 값일때만 pop하는 해결방식을 활용한다면 O(N)이 가능할 수 있을 것 같습니다. Counting Sort..
🎯 MVC(Model - View - Controller)? 💬 what is MVC? 기본적으로 시스템 안의 모든 객체는 세가지의 카테고리로 나눌 수 있습니다. Model: What your application is about (but not how it is displayed) 앱에서 UI와 독립적인 객체들로 '무엇'에 해당하는 요소들을 가지고 있습니다. 예를 들어, Concentration Game에서는 게임 자체를 할 줄 아는 부분에 해당합니다. 카드가 매치되는지, 카드를 제거해야하는지, 언제 카드를 뒤집어야하는지 같은 부분입니다. (Knowledge of the game) Controller: How your Model is presented to the user (UI Logi..
📱 [스탠포드] iOS 강의 학습하기 (CS193p by Paul Hegarty in Stanford) 스탠포드의 Paul Hegarty 교수님께서 진행하신 CS193p 강의를 통해 iOS에 대한 전반적인 기초를 알아보고자 합니다. 블로그에는 강의 단위로 업로드할 계획입니다. 단순히 강의 내용을 필기하는 블로깅이 아니라 추가적인 자료 조사나 다른 강의 내용에서 습득한 내용을 추가하는 형식의 블로그가 될 예정입니다. 🎯 Lecture.01 Introduction iOS에 대한 전반적인 설명과 사용법에 대한 간단한 설명을 진행합니다. 실습해본 git Repository 📝 Swift 언어의 특징 Swift는 객체 지향 프로그래밍(Object Oriented Prograaming)이 가능하지만 함수 지향 프로..
- Total
- Today
- Yesterday
- 나무자르기#BOJ#이분탐색#Python
- Brackets#Stacks and Queues#Codility#Python
- API#lazy#
- django
- Swift#Tuples#Range
- 순열사이클#BOJ#Python
- 쿼드트리#BOJ#분할정복#Python
- django#slicing
- 날짜 계산#BOJ#완전탐색#Python
- 터틀비치#리콘#xbox#controller
- 백준 알고리즘#BackTracking
- 랜선자르기#이분탐색#BOJ#Python
- 암호코드#dp#BOJ#Python
- NumberofDiscIntersections#Codility#Sort#Python
- Triangle#Sorting#Codility#Python
- filter#isalnum#lower
- 종이자르기#분할정복#BOJ#Python
- 반복수열#백준알고리즘#Python
- PassingCars#Codility#Python
- 섬의개수#백준알고리즘#Python
- 공유기 설치#BOJ#이분탐색#Python
- 텀 프로젝트#백준알고리즘#Python
- 파이썬알고리즘인터뷰#4장
- Distinct#Codility#Python
- 미로 탐색#백준알고리즘#Python
- 리모컨#완전탐색#BOJ#Python
- N으로 표현#DP#Programmers#Python
- 배열합치기#분할정복#BOJ#Python
- 병든 나이트#BOJ#탐욕법#Python
- 토마토#백준알고리즘#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |