본문 바로가기

전체 글

[백준] 2606번: 바이러스 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 간단한 재귀함수로 풀었다. 코딩 테스트를 준비할 일이 생겨서 파이썬을 오랜만에 사용하였는데 훨씬 간단하게 풀 문법들을 다시 공부해야겠다. # 7 # 6 # 1 2 # 2 3 # 1 5 # 5 2 # 5 6 # 4 7 def ps(x,arr,cnt,total): global m cnt[x] = 1 for i in range(0,m): if arr[i][0] == x and cnt[arr[i][1]] ==.. 더보기
[iOS-HIG] Audio Audio 아이폰과 아이패드는 내부 또는 외부 스피커, 헤드폰, 블루투스 또는 AirPlay 지원 장치를 통해 무선으로 오디오를 재생할 수 있다. 사용자는 볼륨 버튼, Rind/Silent switch, 헤드폰 컨트롤, 제어 센터 볼륨 슬라이더 등 여러가지 유형의 컨트롤을 사용하여 장치의 소리를 조작한다. 앱의 소리가 어떻게 동작해야 하는지 파악하여 사람들의 기대를 충족시켜줘야 한다. Silence 사용자는 벨소리와 같은 예상치 못한 소리에 의해 방해를 받고 싶지 않을 때 Silence mode로 전환한다. 무음 모드에서는 키보드 클릭, 효과음, 게임 사운드 등 필수적이지 않은 소리와 더불어 미디어 재생, 알람 및 오디오/비디오 메시징과 같이 소리는 나면 안된다. 오직 사용자가 명백히 실행한 소리만 나야.. 더보기
[Swift문법] 프로토콜, 불투명 반환 스위프트 프로토콜 클래스가 구조적으로 올바르게 되기 위하여 스위프트 클래스가 반드시 따라야 할 특정 규칙은 기본적으로 없다. 하지만, 다른 클래스와 함께 작업을 해야 할 때는 특정 조건에 맞춰야 한다. iOS SDK의 다양한 프레임워크와 함께 동작하는 클래스를 만들 떄는 더욱 그러하다. 클래스가 충족해야 하는 최소한의 요구사항을 정의하는 규칙들의 집합을 프로토콜(protocol)이라고 한다. 프로토콜은 protocol 키워드를 이용하여 선언되며, 클래스가 반드시 포함해야 하는 메서드와 프로퍼티를 정의한다. 예를 들어, 어떤 클래스가 프로토콜을 채택했으나 모든 프로토콜의 요구사항을 충족하지 않는다면, 그 클래스가 해당 프로토콜을 따르지 않는다는 에러가 발생한다. 프로토콜 선언은 protocol Messag.. 더보기
[Swift문법] 객체지향 프로그래밍 기초 (2) 클래스 인스턴스 선언하기, 초기화하기 이전까지는 클래스에 대한 구조를 정의하였다. 이 클래스를 가지고 어떤 작업을 하려면 인스턴스를 생성해야 한다. var account1: BankAccount = BankAccount() 이 코드를 실행하면 BankAccount 클래스의 인스턴스가 생성될 것이며, account1이라는 변수를 통해 접근이 가능해진다. 클래스 인스턴스 초기화하기, 소멸하기 클래스는 인스턴스를 생성하는 시점에 해야 할 초기화 작업이 있을 수 있다. 이 작업은 클래스의 init 메서드 안에 구현된다. BankAccount클래스에서는 새로운 클래스 인스턴스가 생성될 때 계좌 번호와 잔액을 초기화할 것이다. class BankAccount { var accountBalance: Float = 0.. 더보기
[iOS-HIG] 3D Touch 3D Touch Long press와 비슷한 기능 3D Touch가 지원되는 장치에서는 터치스크린에 다양한 수준의 압력을 가함으로써 추가 기능에 액세스할 수 있다. 앱은 상황에 맞는 메뉴(*[아래 사진]Context Menu)를 표시하여 항목과 항목에 영향을 미치는 데 사용할 수 있는 작업을 표시할 수 있다. iOS 13 이상을 실행하는 기기에서 사람들은 장치가 3D Touch를 지원하는지에 관계없이 터치 앤 홀드 제스처를 사용하여 상황에 맞는 메뉴를 열 수 있다. 3D Touch장치에서는 제스처를 통해 상황에 맞는 메뉴를 더 빠르게 표시할 수 있다. Home Screen Interaction iOS13이상을 실행하는 기기의 홈스크린에서 앱 아이콘을 길게 누르면 상황에 맞는 메뉴가 표시된다. (3D To.. 더보기
[지식] REST, REST API, RESTful REST API를 알아보기 전 먼저 REST와 API의 단어에 대하여 알아보면 REST REST는 (Representational State Trasfer)의 줄임말로 네트워크 아키텍처 원리의 모음이다. 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. REST의 구성 요소를 설명하기 앞서 URI와 URL에 대하여 간단히 설명을 하면, URI(Uniform Resource Identifier)로 인터넷에 있는 자원을 나타내는 유일한 주소로 인터넷에서 요구되는 기본 조건으로 인터넷 프로토콜에 항상 붙어 다닌다. URL(Uniform Resource Locator)은 URI의 하위 개념으로 파일 식별자, 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약, 웹 리소스에 대한 참조 등 .. 더보기
[swift문법] 객체지향 프로그래밍 기초 스위프트는 객체지향 iOS 앱 개발을 광범위하게 지원한다. 이 글에서는 기초적인 객체지향 프로그래밍의 내용을 정리하려고 한다. 객체 객체(또는 인스턴스)는 소프트웨어 앱을 구축하는 블록을 쉽게 사용하고 재사용할 수 있는 독립적인 기능 모듈이다. 작업을 수행하기 위한 객체나 인스턴스에서 접근되고 호출되는 속성(프로퍼티)과 함수(메서드)로 객체가 구성이 된다. 객체를 구성하는 데이터 변수와 함수를 포괄적으로 클래스 멤버라고 한다. 클래스 클래스는 객체가 생성될 때의 모습을 정의한다. 예를 들어, 메서드들이 하게 될 일이 무엇이며 어떤 프로퍼티들이 존재할지 등을 정의한다. 스위프트에서 클래스 선언하기 객체를 인스턴스화하기 전에 먼저 객체에 대한 클래스를 정의해야 한다. 새로운 스위프트 클래스를 선언할 때 새롭.. 더보기
[iOS-HIG] Setting Setting 일부 앱은 설치 또는 설정을 선택할 수 있는 방법을 제공해야 한다. 성공한 앱은 대부분의 사람들에게 앱안에서 바로 설정을 할 수 있도록 제공한다. 또한 경험을 조정할 수 있는 몇가지 방법을 제공한다. 사용자의 needs를 파악해서 기본적으로 setting을 잡고 안되는 것들만 따로 설정창을 사용 한다. Infer what you can from the system. 시스템에서 무엇을 할 수 있는지 추론하라. 사용자, 디바이스 또는 환경에 대한 정보가 필요한 경우 사용자에게 요청하는 대신 시스템에 쿼리를 날려라. Thoughtfully prioritize configuration options within your app. 우선 순위를 신중하게 정해야 한다. 앱의 메인 화면은 필수적이거나 자.. 더보기