본문 바로가기
반응형

문법9

[Swift] 진수 변환하기 (2진수, 8진수, 10진수, 16진수 등) PS를 위한 문법~ 이번엔 진수 변환이다. 브론즈~실버에서 가끔 진수 변환이 필요한 문제가 있다. 물론 직접 구현해도 되지만..! 이미 라이브러리에 편하게 메소드가 있다ㅎㅎ Int의 이니셜라이저 중에 문자열과 기수(radix)를 받아 문자열로 표현된 radix진수 → Int로 만들어주는 init(_:radix:)가 있다. 주의할 점은 변환에 실패할 수도 있기 때문에 Failable Initializer이라는 점이다. 옵셔널 타입으로 만들어주므로 옵셔널 바인딩을 하거나 강제 언래핑을 해서 사용해야 함. init?(_ text: S, radix: Int = 10) where S : StringProtocol 또 String의 이니셜라이저 중에 정수와 기수(radix)를 받아 정수 → radix진수 문자열로 .. 2022. 1. 17.
[Swift] 거듭제곱하기 거의 PS용 문법들만 포스팅하게 되는 것 같은데..ㅎㅎ 오늘은 거듭제곱이다. 반복문으로 구현해도 되지만 메소드로 만들어져 있다! 사용법 요약부터 하면 let resultOfPow = pow(3.0, 2.0)// 9.0 // Int로 형변환 하려면 Float형으로 호출해야 함 var sum = 0 sum += Int(resultOfPow)// Int형과 더하려면 형변환 필요 스위프트의 거듭제곱 메소드는 pow이다. 종류가 이렇게 많은데, 호출 시에 파라미터를 다 _로 생략하게 되어있으니까 자료형에 맞춰서 알아서 맞는 것으로 호출되겠지..? 하는 생각을 하며 일단 시작 pow(x,y)에서 x가 밑이고 y가 지수이다. 알고리즘 문제에서는 거의 밑과 지수 모두 정수일 때이니까 정수^정수를 해보자. 이렇게 잘 구.. 2022. 1. 15.
[Swift] 소수점 제거하기 (반올림, 올림, 내림, 버림 등) PS를 하다 보면 반올림, 올림, 내림, 버림 등 소수점을 제거해서 출력해야 할 때가 종종 있다. 찾아보다가 이 모든 것을 전부 할 수 있는 만능 메소드를 찾았다! FloatingPoint 프로토콜에 정의된 round(_:)라는 메소드이다. 기본 자료형인 Float과 Double 모두 FloatingPoint 프로토콜을 채택하고 있기 때문에 round 메소드 사용이 가능하다. mutating func round(_ rule: FloatingPointRoundingRule) 형태는 mutating func round(_ rule: FloatingPointRoundingRule). 제거한 결과값을 리턴하는 게 아니라 mutating func이기 때문에 인스턴스 값 자체가 바뀐다. 따라서 immutable 한.. 2022. 1. 13.
[Swift] 특정 값으로 초기화 된 특정 크기의 배열 생성하기 알고리즘 문제를 풀다 보면 전부 0으로 초기화된 크기 100짜리 배열 등 특정 값으로 초기화된 특정 크기의 배열을 만들어야 할 때가 많다. 이미 애플에서 이러한 용도의 Array Initializer를 제공하기 때문에 빈 배열에 0을 100번 추가하지 않아도 된다. repeating에는 반복할 값을, count에는 배열 크기를 적어주면 된다. var arr = Array(repeating: 0, count: 5) // [0, 0, 0, 0, 0] + 풀다보니 2차원 배열이 필요할 때도 많은 것 같아 추가한다. repeating value를 단일 값이 아닌 배열로 주면 된다. let twoByThreeMatrix = Array(repeating: Array(repeating: 0, count: 3), co.. 2022. 1. 6.
반응형