본문 바로가기

전체 글

(120)
[AL&DS] 버블정렬 // 버블정렬 (좌, 우 값을 비교해 쉬프팅 진행) func bubbleSort(_ary []int) []int { for i := 0; i _ary[j+1] { fmt.Println("앞 :", _ary[i], "뒤 :", _ary[j]) _ary[j], _ary[j+1] = _ary[j+1], _ary[j] } } } return _ary }
[AL&DS] 선형검색, 이진검색 1. 선형검색 (좌 -> 우 하나씩 탐색) // 선형검색 : O(N) func linearSearch(_ary []int, _find int) bool { result := false for i := 0; i < len(_ary); i++ { fmt.Println("STEP : ", i+1) if _ary[i] == _find { result = true break } } return result } 2. 이진검색 (MidPoint로 쪼개어 탐색) // 이진검색 : O(logN) func binarySearch(_ary []int, _find int) (bool, int) { lower := 0 upper := len(_ary) - 1 result := false resultIdx := 0 for i :..
[Solidity - 가스비최적화] unchecked - Unchecked라는 오버플로우 및 언더플로우 검사를 실행하지 않도록 강제하는 메소드. - 0.8.0 버전 이전까지는 OpenZeppelin의 safeMath를 통해 오버플로우 및 언더플로우 연산을 적용해 수행하도록 했으나, - 0.8.0 버전 이후로는 Solidity 컴파일러에서 오버플로우 및 언더플로우 검사가 자동으로 포함. **그래서, 확실한 값에 대하여 오버플로우 검사를 수행하지 않으면 가스비용 최적화에 도움이 된다.
[Solidity] Function Selector Function Selector란 '함수서명'이라고도하며 '함수의 식별자'다. 통상 ABI안에 포함되어있음. 이는 이더스캔에서 "Method ID"로. Function Selector는 함수 Byte Data 첫 4Byte에 저장. - 아래 두가지 방식으로 취득 가능. - 아래 방식으로 주로 사용.(여기서 첫번째 있는 부분이 Selector ) (bool check, bytes memory data) = address.call( abi.encodeWithSignature("함수명(변수타입)",매개변수값) ); (bool check, bytes memory data) = address.delegatecall( abi.encodeWithSignature("함수명(변수타입)",매개변수값) ); - msg.va..