본문 바로가기
반응형

문법9

[Swift] 소수점 n+1번째 자리에서 반올림하여 n번째 자리까지 나타내기 1. 10^n을 곱한다. 2. round 함수로 반올림한 정수로 만든다. 3. 다시 10^n으로 나눠준다. 예를 들어 70.8756을 소수점 셋째 자리에서 반올림하여 둘째 자리까지만 나타내고 싶다면 70.8756 → 7087.56 → 7088 → 70.88 let x = 70.8756 print(round(x * 100) / 100)// 70.88 2022. 2. 8.
[Swift] 원주율 파이(Pi)값 사용하기 기하 알고리즘을 공부하면서 원주율 파이값을 사용할 일이 생겼다. 아래와 같이 FloatingPoint 타입에 get 프로퍼티로 선언되어 있다. static var pi: Self { get } 사용은 아래와 같이 하면 된다. let PI = Double.pi // 3.141592653589793 2022. 2. 8.
[Swift] 배열에서 중복 제거하기 Set 사용 Set의 성질을 이용한다. 집합 내에는 중복 원소가 존재하지 않으므로, 간단하게 Array를 가지고 집합 Set을 생성하면 중복이 제거된다. Array를 Set으로 Set의 이니셜 라이저 중에 Sequence를 받아 Set을 만들어주는 것이 있다. Array도 Sequence 프로토콜을 준수하므로 이것을 사용하면 된다. init(_ sequence: Source) where Element == Source.Element, Source : Sequence 예시 코드 중복이 포함된 Array을 가지고 Set를 만드는 코드이다. 중복되는 원소들이 제거되고 1, 2, 3, 4, 5만 남은 것을 확인할 수 있다. 단, Set은 원소들 간 순서가 없는 unordered collection이기 때문에 배.. 2022. 2. 5.
[Swift] 문자열에서 특정 문자 한 개 또는 여러 개 제거하기 PS에서 입력을 파싱해서 사용해야 할 때가 있다. 얼마전 숫자 N개를 공백으로 구분해서 주지 않고 콤마로 구분한 뒤, 심지어 괄호 안에 담아서 [1,2,3,4,5] 이렇게 주는 문제를 만났다ㅠㅠ 공백 대신 콤마로 주는 건 split의 separator를 ", "로 바꿔주기만 하면 되는데, 앞 뒤에 대괄호를 떼어내는 게 문제.. 인덱스로 앞 뒤 잘라내는 방법도 있겠지만 스위프트에서 문자열 인덱스 다루는 게 제일 귀찮은 일이어서ㅎㅎ 그냥 괄호를 없애버리는 방법을 찾았다. 문자열 내에서 Target Substring을 모두 찾아 원하는 Replacement 문자열로 바꿔주는 replacingOccurrences라는 메소드가 있다. func replacingOccurrences(of target: Target,.. 2022. 1. 18.
[Swift] 비트 연산과 비트마스킹 (NOT, AND, OR, XOR, 시프트 등) 오늘도 PS를 위한 문법, 비트 연산자이다. 비트 연산은 거의 비트마스킹에 쓰기 때문에 비트마스킹에 활용하는 방법까지 엮어서! Bitwise Operators NOT ( ~ ) 모든 비트를 반대로 뒤집어버린다. 0은 1로 만들고, 반대로 1은 0으로 만든다. 연산자는 ~이다. let A: UInt8 = 0b00110011 // 0011 0011 let notA = ~A // 1100 1100 AND ( & ) 둘 다 1인 경우에만 1이고, 나머지 경우는 모두 0으로 만든다. 연산자는 &이다. let A: UInt8 = 0b00110011 // 0011 0011 let B: UInt8 = 0b01010101 // 0101 0101 let AandB = A & B // 0001 0001 OR ( | ) 둘 .. 2022. 1. 17.
반응형