목록Swift (5)
cchanmi
Dictionary는 key와 value로 이뤄진 자료구조입니다. key를 이용해 value를 찾을 수 있는데, 그 반대인 value를 이용해 key를 찾는 방법도 있을까요? let input = readLine()!.split(separator: " ").map{Int(String($0))!} let number = input[0] let cutLine = input[1] var dic = [Int:String]() // 딕셔너리에 값 추가 for i in 1...number { dic[i, default: ""] += readLine()! } 이 코드는 백준 문제인데요. 제가 조금 바꿔 보았습니다. ㅎㅎ 현재 이 코드의 dictionary는 1번부터 시작하는 숫자로 key를 가지고 value로는 포켓..
Dictionary와 Set은 내부적으로 hashTable로 구성되어 있기 때문에, 순서가 보장되지 않죠. 가끔 Dictionary와 Set으로 값을 찾으면 딱 좋은 상황인데, 값이 들어온 순서대로 출력해야 하는 상황을 겪는다면 어떻게 해야 할까요? 그럴 때마다 항상 Dictionary와 Set을 포기했었는데, 이번에 원하는대로 출력할 수 있는 로직을 구현해 보게 되어서 기록해 두려고 합니다. ㅎㅎ 해당 함수는 입출력으로 [1, 2, 3, 3, 3, 3, 4, 4]라는 배열을 주고 있습니다. 여기서 중복되는 배열의 값일 경우, 그 중복값을 count 하여 출력해 주고자 합니다. 단, 먼저 나온 순서대로 출력하고자 합니다. 예를 들면 위의 입출력에서는 Dicrionary를 이용한 로직 func soluti..
안녕하세요. :) Swift 언어에서 문자열에 index에 접근하는 것이 까다로워서 두 번째 글을 작성하게 되었어요. 저번 글들에서 다루지 않았던 것들 위주로 다뤄볼 테니, 저번 글을 읽고 오면 더 좋을 것 같습니다! 1. prefix prefix는 문자열의 앞에서부터 접근합니다. let string = "hello, swift" let str1 = string.hasPrefix("h") // true 차례대로 하나씩 봐보겠습니다. hasPrefix는 파라미터로 들어간 값으로 시작하는지, 아닌지를 판단해 주는 메서드입니다. return 타입이 bool 타입이네요. let str2 = string.prefix(5) // hello prefix는 n만큼 문자열의 index를 접근해 주는 메서드입니다. let..
swift로 알고리즘 문제를 풀다 보면 string의 index에 접근해야 할 상황이 종종 있습니다. swift는 다른 언어들처럼 index를 정수로 받지 않아서 조금 까다롭더라구요. let hello = "hello" let first = hello[0] // error 그래서 우리는 swift에서는 string의 index를 가리키기 위해서는 String.index라는 타입을 이용해야 합니다. String.index란? 공식 문서에 따르면 문자열에서 문자 또는 코드 단위의 위치라고 정의되어 있습니다. Apple Developer Documentation 첫번째 index를 가리키는 법 그럼 String.index를 사용하여서 0번째 인덱스를 가리키려면 어떻게 해야 할까요? let first = str..
안녕하세요. :) 알고리즘 문제를 풀다 보면 reversed, sort, sorted와 같은 문자열 재정렬 함수를 사용하게 되는 경우가 종종 있는데요. 좀 더 정확하게 알기 위해 블로그에 정리해 보겠습니다. reversed 먼저 공식 문서를 살펴보았습니다... https://developer.apple.com/documentation/swift/string/reversed() Apple Developer Documentation developer.apple.com reversed 함수는 컬렉션 요소를 역순으로 표시해 준다고 적혀 있네요. 또, reserved 함수를 호출하여 사용했을 때, 새로운 배열을 반환하는 것이 아니라, 기존의 컬렉션을 래핑하여 요소를 역순으로 정렬해 준다고 적혀 있습니다! 예를 들..