[오늘의 Swift 지식] max(), min()으로 최대/최소값 구하기
·
📌 Swift
오늘은 가장 큰 값과 가장 작은 값을 구하는 max, min에 대해 알아보겠습니다. max() 1. max(_:_:) max(_:_:) 함수는 두 개의 비교 가능한 값들 중 더 큰 값을 반환합니다. 아래의 간단한 예시를 보면, a와 b를 비교하여 더 큰 값인 100이 출력되는 것을 확인할 수 있습니다. let a = 100let b = 20let bigger = max(a, b)print("더 큰 값은: \(bigger)") // 더 큰 값은: 100 반환 값은 x와 y가 동일한 값이라면, 뒤에 위치한 값인 y가 반환됩니다. 2. max() max()는 "여러 값 중에서 가장 큰 값을 골라서 반환"하는 인스턴스 메서드입니다. max()는 배열이 비어 있을 경우 nil을 반환하기 때문에, 반환..
[Swift] 문자열 나누기 split()과 components() 를 알아보자!
·
📌 Swift
오늘은 Swift에서 문자열을 처리하는 방법중에 문자열을 쪼개야 하는 경우에 사용되는 split와 components 메소드에 대해서 알아보겠습니다. 알고리즘에서도 자주 사용되니 차이점을 알아두면 좋겠죠? split()split 메소드를 먼저 공식문서를 통해서 봅시다. 위와같이 split 메소드는 separator, maxSplits, omittingEmptySubsequences 의 3가지 파라미터가 있습니다. 하나씩 알아봅시다! 📍 separatorCharacter 타입으로, 매개변수를 받아서 해당 인자를 기준으로 쪼개주는 역할을 합니다. 우리가 원하는 바로 그 역할이죠 let str = "Hello World"let arr = str.split(separator: " ")// 출력 : ["H..
[오늘의 Swift 지식] 고차 함수 (map, filter, reduce)
·
📌 Swift
고차 함수란?고차 함수(Higher-Order Function)는 하나 이상의 함수를 인자로 받거나, 함수를 결과로 반환하는 함수를 말합니다. 스위프트에서 제공하는 고차함수는 map, filter, reduce 3가지가 있으며, 컬렉션을 처리할 때 매우 유용합니다.  map(변형)map 메서드는 컨테이너 내부에 각 요소를 변형(transform)하여 새로운 컨테이너를 생성합니다. 다만, 새로운 컨테이너를 생성한 것이기 때문에 기존의 데이터는 변하지 않습니다. map은 for-in 구문과 유사한 결과를 만들지만, 코드가 더 간결하고 선언적으로 작성할 수 있다는 장점이 있습니다. 그러면, for-in 문과 map 메서드를 사용한 코드를 비교해보겠습니다. for-inlet numbers: [Int] = [0,..
[오늘의 Swift 지식] stride 함수 (백준 2742번 기찍 N, 역수 구하기)
·
📌 Swift
백준의 2741번째 문제를 풀고 기찍N 이라는 2742번을 풀다가 오류가 계속 나서 찾아보다가 stride라는 함수를 찾게 되었습니다.그냥 공부만 하기에는 잊어버릴 것 같고 꾸준히 참고할 거 같아서 정리하였습니다. stride( ) 함수 먼저 stride가 무슨 뜻인지 궁금해서 검색을 해보았는데요. 사전적인 의미는 "보폭"이라네요? 코딩에서는 이 의미를 그대로 적용해서 "특정 간격(보폭)만큼 이동"하는 반복을 의미하는 것 같습니다.또한, 위에 있는 공식문서의 Return Value부분을 보면 "start(from)부터 end(to) 방향으로 가되, end(to)는 포함하지 않는다."라고 작성되어 있습니다. 즉, stride(from: to: by: )는 시작값(from)부터 종료값 바로 전까지(to), ..
[오늘의 Swift 지식] In-Out이란 무엇일까?
·
📌 Swift
In-Out은 왜 사용하는 것일까?C, C++, Python, Java 등의 언어에서 함수의 파라미터는 "변수"로 사용됩니다. 그렇다면, Swift에서도 함수의 파라미터는 변수일까요? 답은 그렇지 않습니다. Swift에서 함수의 매개변수는 기본적으로 변경할 수 없는 값(상수처럼 동작)으로 처리됩니다.즉, 함수 내에서 매개변수의 값을 직접 수정하려고 하면 컴파일 에러가 발생합니다. 그렇다면, 메서드 내에서 인자값을 변경하고 원본 변수에도 영향을 주어서 그 변수에서 벗어나더라도 값이 유지가 되게 하려면 어떻게 해야 할까요? 🤔 그럴 때 사용하는 것이 바로 inout 매개변수입니다. 보통 함수 내부에서 전달받은 값을 다른 변수에 저장해두고 처리하는 방식으로도 작업할 수 있지만, 이 경우 함수가 종료되면 값이..
[오늘의 Swift 지식] 전달인자(Argument)와 매개변수(Parameter)
·
📌 Swift
안녕하세요:) 오늘은 전달인자(Argument)와 매개변수(Parameter)에 대해 정리하겠습니다.   아래의 코드는 매개변수 이름과 레이블의 표현 방식입니다.  띄어쓰기를 하다가 조금 헷갈릴 수 있다고 생각이 들어서 띄어쓰기 부분에 _로 표시해 두었으니 참고해주세요 :)func 함수 이름(전달인자_레이블 매개변수_이름: 매개변수_타입, ...) -> 반환_타입 { 실행_구문 return 반환_값} 위의 예시만 봐도 알 수 있을 거 같지만, 아래의 예시 코드를 보면서 전달인자(Argument)와 매개변수(Parameter)에 대해 조금 더 풀어서 설명을 해보겠습니다.func add(_ a: Int, _ b: Int) -> Int { return a + b}add(10, 5) // add..