전체 150

[Swift]난수 생성과 범위 설정

Int로 랜덤을 뽑아내는 방법은 간단합니다. Int의 메소드를 사용하면 됩니다. Int.random(int: (1...10)) // 1~10 난수를 리턴 다른 방법으로 이용하는 함수는 다음과 같습니다. arc4random_uniform( ) 다음 코드과 같이 arc4random_uniform( ) 을 이용해 생성이 가능한데 원하는 난수의 수를 넣어주시면 됩니다. let random = Int(arc4random_uniform(10)) // 0~9 사이의 난수 생성 만약 여기서 범위를 설정하고 싶다면 수를 더해 원하는 범위를 만들 수 있습니다. let random = Int (arc4random_uniform(10)) + 1 // 1~10 난수 생성

iOS/Swift 2022.01.30

Xcode 단축키

Vscode 단축키가 그대로 호환이 되었다면 좋겠지만 아쉬운 대로 기존에 쓰던 필요한 단축키를 어느 정도 정리 중입니다. 프리뷰 및 해제 Command + option + Enter Command + Enter -> 단일 창으로 들여 쓰기 자동 ctrl + I 콘솔(디버거 창) 오픈 Command + Shift + c 같은 단어 선택 Option + control + e 위 것 전체 선택 버전 Command + ctrl + e 왼쪽 창 제어 Command 숫자 왼쪽 창 제어 Command option 숫자 줄 수직 수평 이동 Command + option [ ] -> alt 방향키 옵션을 제외 좌우 이동 여러 커서 Shift + control + click

iOS/Swift 2022.01.30

[Swift] 고차함수 map, filter, reduce

자바 스크립트에서 유용하게 사용했던 문법들 입니다. 스위프트에서도 비슷하게 사용 가능합니다. // 고차함수 // map, filter, reduce let a: [Int] = [1,2,3,4,5] var doubleA: [Int] = [] // map에는 클로저를 넣는다. doubleA = a.map({(number: Int)-> Int in return number * 2 }) print(doubleA) // 축약법 //doubleA = a.map{ $0 * 2} // filter // return 값이 True인 값만 반환 // reduce // 컨테이너 내부의 콘텐츠를 하나로 통합 let numbers: [Int] = [10,20,30] let sum: Int = numbers.reduce(0, {..

iOS/Swift 2022.01.25

[Swift] extension 익스텐션

// 익스텐션 // 타입에 새로운 기능을 추가할 수 있는 기능 //extension 확장할 타입 { //} //extension String: 프로토콜1,프로토콜2,프로토콜3 { // //} // 예시 extension Int { var isEven: Bool { return self % 2 == 0 } var isOdd: Bool { return self % 2 == 1 } } print(1.isEven) print(2.isEven) // 메서드 추가 예시 extension Int { func multiply(by n: Int) -> Int { return self * n } } print(3.multiply(by: 3)) // 생성자 추가 예시 extension String { init(intType..

iOS/Swift 2022.01.25

[Swift] 프로토콜 protocol

// 프로토콜 // protocol 프로토콜 이름 { // 정의 //} import CoreGraphics // 프로토콜을 채용하면 해당 조건을 지켜줘야 한다. protocol a { // 프로퍼티는 항상 var로 요구 // get은 익기만 가능해도 됨 // get set은 읽기 쓰기 모두 가능해야 함 var topic: String { get set } var language: String{ get } // 메서드 요구 // 구현은 안해도 됨 func talk() // 생성자 요구 init(topic: String, language: String) } // 프로토콜 채택 struct Person: a { var topic: String let language: String // var subject: ..

iOS/Swift 2022.01.25

[Swift] assert 와 guard

// assert, guard // 값 확인에 사용 // assert // 디버깅 모드에서만 작동 var a: Int = 0 // 맞으면 지나감 아니면 출력하고 중지 assert(a == 0, "someInt != 0") a = 1 //assert(a == 0, "someInt != 0") // guard 는 빠른 종료를 위한 구문 // if else로 구현하는 것과 비슷 // 예시 var count: Int = 1 while true{ guard count < 3 else{ break } print(count) count += 1 } // 딕셔너리에서 유용 // 참고로 딕셔너리에서 꺼내오는 값은 항상 옵셔널(값이 없을 수도 있으니까) func exFunc(info: [String: Any]){ // i..

iOS/Swift 2022.01.25

[Swift] 클래스의 생성자와 소멸자

클래스를 사용할 때 생성자와 소멸자는 많이 사용됩니다. // 인스턴스의 생성과 소멸 // 생성자와 소멸자 인듯하다. // constructor -> init class Person { var name: String var age: Int var nickName: String? // 만약 require한 값이 아니라면 ?로 옵셔널 줄 수 있다. // var nickName: String? // 생성자 init (name: String, age:Int, nickName: String) { // 아래 생성자와 중복되는 부분이 있음으로 다음 주석과 같이 변경 가능 // 단, 자신의 init을 쓰려면 앞에 convenience를 붙여야 한다. // self.init(name: name, age: age) self..

iOS/Swift 2022.01.24

[Swift] 클래스의 상속

class의 사용에서 상속은 중요한 개념입니다. // 클래스의 상속 // 상속 //class childClass: parentClass { // //} class Person { var name: String = "" func selfIntroduce() { print("저는 \(name) 입니다") } // final을 이용하면 오버라이딩 할 수 없다. final func sayHello(){ print("hello") } // 타입 메서드 - 인스턴스를 만들지 않아도 사용이 가능하다. // static을 이용하면 재정의 할 수 없다. static func typeMethod() { print("type method - static") } // class를 이용하면 재정의가 가능하다. // class는..

iOS/Swift 2022.01.24

[Python] 프로그래머스 Lv1 신고 결과 받기

풀이 def solution(id_list, report, k): declare = {} # 신고당한 사람 : 신고한 사람 declared = [] # 유저 순서대로 신고 당한 수 answer = {} for i in id_list: # 유저 수 만큼 배열 생성 declare[i] = [] answer[i] = 0 // 초기 신고 값은 (이름: 0) for i in report: a, b = i.split(" ") # 신고하는 사람과 당한 사람을 나눔 if a not in declare[b]: # 중복 신고 체크 declare[b].append(a) # 중복이 아니라면 추가 for i in declare.values(): # 각 유저별 신고 당한 수 저장 declared.append(len(i)) for..

개발/PS 2022.01.23