📌 Swift

    [Swift] 문자열 나누기 split()과 components() 를 알아보자!

    코로나에 걸리고 여러가지 일에 겹쳐서 오랜만에 글을 쓰게 되었네요.. 다시 열심히 해야지 😤 오늘은 Swift에서 문자열을 처리하는 방법중에 문자열을 쪼개야 하는 경우에 사용되는 split와 components 메소드에 대해서 알아보겠습니다. 알고리즘에서도 자주 사용되는 메소드이니 차이점을 알아두면 좋겠죠? 😋 split split 메소드를 먼저 공식문서를 통해서 봅시다. 위와같이 split 메소드는 separator, maxSplits, omittingEmptySubsequences 의 3가지 파라미터가 있습니다. 하나씩 알아봅시다! 📍 separator Character 타입으로, 매개변수를 받아서 해당 인자를 기준으로 쪼개주는 역할을 합니다. 우리가 원하는 바로 그 역할이죠 🤓 let str = "..

    [오늘의 Swift 지식] 고차 함수 (map, filter, reduce)

    고차 함수란? 고차 함수는 다른 함수를 전달 인자로 받거나, 함수 실행의 결과를 함수로 반환하는 함수입니다. 스위프트에서 제공하는 고차함수는 map, filter, reduce 3가지가 있으며, 컨테이너 타입 (Array, Set, Dictionary 등)에 구현되어 있습니다. map(변형) map 메서드는 컨테이너 내부에 기존 데이터를 변형(transform)하여 새로운 컨테이너를 생성합니다. 다만, 새로운 컨테이너를 생성한 것이기 때문에 기존의 데이터는 변하지 않습니다. map은 for-in 구문과 큰 차이점은 없지만 map 메서드를 사용하면 코드의 간결성, 재사용 용이성, 컴파일러 최적화 성능이 좋다는 장점이 있습니다. 그러면, for-in 문과 map 메서드를 사용한 코드를 비교해봅시다. 😃 fo..

    [오늘의 Swift 지식] stride 함수 (백준 2742번 기찍 N, 역수 구하기)

    백준의 2741번째 문제를 풀고 기찍N 이라는 2742번을 풀다가 오류가 계속 나서 찾아보다가 stride라는 함수를 찾게 되었습니다. 그냥 공부만 하기에는 잊어버릴 것 같고 꾸준히 참고할 거 같아서 정리하였습니다. stride( ) 함수 먼저 stride가 무슨 뜻인지 궁금해서 검색을 해보았다. 보폭이라는 뜻으로 나오고 인터넷에서 찾다 보니 보폭만큼 다가간다는 것 같다. 그러면 from부터 to까지 by의 매개변수 값만큼 이동한다는 걸로 알면 될 거 같다. 2742번 기찍 N문제와 동일하게 5를 입력받았을 경우에, 5부터 1까지 역순으로 출력하는 코드를 작성한다면, import Foundation let number = Int(readLine()!)! for i in stride(from: number..

    [오늘의 Swift 지식] In-Out이란 무엇일까?

    In-Out은 왜 사용하는 것일까? C, C++, Python, Java 등의 언어에서 함수의 파라미터는 "변수"로 사용됩니다. 그렇다면, Swift에서도 함수의 파라미터는 변수일까요? 답은 그렇지 않습니다. Swift에서 함수의 파라미터는 let 상수(Constant)로 사용되며, 당연하게도 상수인 인자 값을 변경하려고 시도하면 컴파일 에러가 발생합니다. 그렇다면, 메서드 내에서 인자값을 변경하고 원본 변수에도 영향을 주어서 그 변수에서 벗어나더라도 값이 유지가 되게 하려면 어떻게 해야 할까요? 🤔 위의 질문과 같이 인자값을 변경해주기 위해서는 함수 안에서 지역변수의 선언을 통해 값을 대입해주는 과정이 필요합니다. 하지만, 그 값은 함수를 벗어나면 사라지기 때문에 그 값을 유지시켜주기 위하여 in-ou..