0. TIL
잘한 점: 오늘 회사에서 업무를 아주 잘해서 칭찬 받았음 그리고 퇴근하고 10시 넘어서까지 공부 ing ㅠㅠ
개선점 : 안되는건,,, 너무 붙잡지 말고 머리에 바르고 넘어가자 그리고 또 보자... 시간낭비!!!
배운 점: radix 활용법
1. 데일리 루틴
cs 공부
질문 : 병렬 처리와 동시 처리의 차이, iOS에서의 멀티코어 활용 방안에 대해 설명해주세요.
- 병렬 처리(Parallel Processing): 여러 코어에서 작업을 동시에 처리.
- 동시 처리(Concurrent Processing): 하나의 코어에서 여러 작업을 빠르게 전환하며 처리.
iOS에서 멀티코어 활용:
- GCD (Grand Central Dispatch): 비동기 작업을 큐에 추가해 병렬 처리.
- OperationQueue: 작업 간 의존성 및 취소 등을 제어하며 병렬화.
- Metal/Accelerate: 그래픽 연산과 수치 계산을 병렬로 최적화.
차이점: 병렬 처리는 실제로 동시에 실행, 동시 처리는 번갈아가며 실행.
1일 1커밋
📜 문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
⌨️ 입출력 예
n | result |
45 | 7 |
✏️ 나의 코드
func solution(_ n:Int) -> Int {
let ternaryString = String(n, radix: 3)
let reversedString = ternaryString.reversed()
var a: [Int] = []
var sum = 0
var cnt = 0
for i in reversedString{
if let elementInt = Int(String(i)){
a.append(elementInt)
}
}
for (index, i) in a.reversed().enumerated(){
sum += i * Int(pow(3.0, Double(index)))
cnt += 1
}
return sum
}
눈물 없인 볼 수 없으센,,,
📚 개선 코드
func solution(_ n: Int) -> Int {
// 1. n을 3진법 문자열로 변환
let ternaryString = String(n, radix: 3)
// 2. 3진법 문자열을 뒤집음
let reversedTernaryString = String(ternaryString.reversed())
// 3. 뒤집은 문자열을 다시 10진법으로 변환
let result = Int(reversedTernaryString, radix: 3)!
return result
}
하,,,
Swift야 너 참 친절하구나
많은 기능을 지원하는구나...
radix는 숫자를 특정 진법으로 표현할 때 사용하는 값으로
Swift에서는 숫자를 특정 진법으로 표현하거나 진법에 따라 숫자를 변환할 때 사용함.
Swift의 radix는 두 가지 주요 용도로 사용됨
숫자를 문자열로 변환할 때: String 초기화 시 radix를 지정하여 숫자를 특정 기수로 표현할 수 있음. 예를 들어, 10진수 숫자를 2진수, 8진수, 16진수 등으로 표현할 수 있음.
let number = 255
let binaryString = String(number, radix: 2) // "11111111" (2진수)
let octalString = String(number, radix: 8) // "377" (8진수)
let hexString = String(number, radix: 16) // "ff" (16진수)
문자열을 숫자로 변환할 때: Int의 초기화 시 radix를 지정하여 문자열을 해당 기수의 숫자로 변환할 수 있음.
let binaryString = "11111111"
let numberFromBinary = Int(binaryString, radix: 2) // 255 (10진수로 변환)
let octalString = "377"
let numberFromOctal = Int(octalString, radix: 8) // 255 (10진수로 변환)
let hexString = "ff"
let numberFromHex = Int(hexString, radix: 16) // 255 (10진수로 변환)
한마디로!!! 엄청 헷갈린다고 볼 수 있음
정리!!!
Int → String( int , radix: n)
⇒ n진법으로 변환!!!
String → Int( string, radix : n)
⇒ n진법인 Int(String)을 10진법으로 변환!!!
'TIL' 카테고리의 다른 글
240916 TIL | 해시 함수, 세균 증식 (0) | 2024.09.16 |
---|---|
240911 TIL | 암호화, 보안, 타입캐스팅, 좌표 (0) | 2024.09.11 |
240907 TIL | 동시성 프로그래밍, 그리디 알고리즘, 예산 (0) | 2024.09.07 |
240903 TIL | 트리 자료구조, 최대공약수와 최소공배수 (0) | 2024.09.03 |
240828 TIL | 문자열 다루기 기본, 배열, 스택 등등 (2) | 2024.08.28 |