전체 글 67

[Swift] 백준 1620번 나는야 포켓몬 마스터 이다솜

문제 링크 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제 풀이 나의 풀이 import Foundation let NM = readLine()!.split(separator: " " ).map{Int(String($0))!} var array1 = [String : Int]() var array2 = [Int : String]() for i in 1...NM[0] { let p = readLine()! array1[p] = i array2[i] = p } for _ in 1...

[Swift] 백준 2164 카드2

문제 링크 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 풀이 나의 풀이 import Foundation let N = Int(readLine()!)! var quene = Array(1...N) var n = 0 if N == 1 { print(1) } else { while true { quene[n] = 0 quene.append(quene[n+1]) quene[n+1] = 0 if quene[quene.count-2] == 0 { print(quene.last!) break } n += 2 } ..

[기초] 클로저

드디어 대망의 클로저... 스위프트 공식문서를 찾아보니 Group code that executes together, without creating a named function.라고 한다. 명명된 함수 없이 실행되는 코드의 그룹이 클로저라는 것이다. Closures are self-contained blocks of functionality that can be passed around and used in your code. 클로저는 자체적인 기능을 가진 블록이라고 한다. // String을 반환하는 클로저 let myName: String = { // myName으로 들어간다 return "Swift" }() print(myName) 출력값 : Swift myName은 String값을 가지고 있고 ..

[기초] 제네릭

제네릭은 어떠한 형태도 입력 받을 수 있다. // T는 타입의 약자? struct MyArray{ //제네릭을 담은 빈 배열 var elements : [T] = [T]() //생성자 init(_ elements: [T]){ self.elements = elements } } struct Friend { var name: String } struct Coffee { var name : String } var mySomeArray = MyArray([1,2,3]) var myStringArray = MyArray(["a","b","c"]) let friend_1 = Friend(name: "A") let friend_2 = Friend(name: "B") let friend_3 = Friend(name: ..

[기초] 프로퍼티 옵저버, 함수 매개변수 이름

프로퍼티 옵저버 var myAge = 0 { willSet{ print(myAge) } didSet{ print(myAge) } } myAge = 10 0 10 값이 어떻게 변화했는지 알 수 있는 방법이다. 함수 매개변수 이름 func myFunc(name: String) -> String { return "안녕하세요 \(name)입니다." } myFunc(name: "swift") func myFunc2(with name: String) -> String { return "안녕하세요 \(name)입니다." } myFunc2(with: "swiftUI") func myFunc3(_ name: String) -> String { return "안녕하세요 \(name)입니다." } myFunc3("code"..

[기초] 클래스 vs 스트럭트

class와 struct의 차이! 간단하게 정리해 보면 class는 연결되어 있고, struct는 연결되어 있지 않다! 그리고 print를 해보면서 느낀건데 struct는 foodStruct(name: "Chicken", price: 18000) 같은 형식으로 출력이 되지만 class는 그렇게 출력이 되지 않는다! struct foodStruct { var name : String var price : Int } var a = foodStruct(name: "Chicken", price: 18000) var b = a b.price = 20000 print(a) print(b.name, b.price) foodStruct(name: "Chicken", price: 18000) Chicken 20000 이..

[기초] Unwrap 옵셔널변수

옵셔널은 값이 있는지 없는지 모를때 쓴다. var something : Int? = nil if something == nil { something = 90 } something을 프린트하게 되면 Expression implicitly coerced from 'Int?' to 'Any'라는 문구가 뜨면서 Optional(90)이 출력된다. if let other = something { print("Unwraping \(other)") } else { print("값이 없다.") } 출력은 Unwraping 90으로 나온다. 이것은 Unwraping된 것이다. something = nil let value = something ?? 10 print(value) 출력은 10으로 나온다. 기본값을 넣어버리면..

[기초] enum 케이스 나누기

enum이라는 개념을 알고 있는가? 케이스를 정해주는 것인데, 아직 제대로 써본적이 없는 것 같다. enum day { case morning, afternoon, evening } let today = day.morning print(today) day에 morning, afternoon, evening의 값이 들어간다! today를 출력하면 morning이 나오게 된다. enum score : Int { case good = 100 case soso = 50 case bad = 0 } let myScore = score.good print(myScore, myScore.rawValue) 위와 같이 케이스별로 값을 정해 줄 수 있다. myScore을 출력하게 되면 good이 나오지만 .rawValue까..