전체 글 (30) 썸네일형 리스트형 [AL&DS] 큐 // 큐 (FIFO) type Que []interface{} func (q *Que) addQue(_appendNum int) Que { *q = append(*q, _appendNum) return *q } func (q *Que) removeQue() interface{} { if len(*q) [AL&DS] 스택 type Stack []interface{} // 스택 (LIFO) func (s *Stack) addStack(_appendNum int) Stack { *s = append(*s, _appendNum) return *s } func (s *Stack) removeStack() interface{} { if len(*s) < 0 { return 0 } topIdx := len(*s) - 1 data := (*s)[topIdx] *s = (*s)[:topIdx] // fmt.Println(*s) return data } [AL&DS] 삽입정렬 // 삽입정렬 - 1번 인덱스부터 뽑아서 왼쪽인덱스와 비교해 쉬프팅하는 절차 진행 func insertionSort(_ary []int) []int { for i := 1; i = 0; j-- { if _ary[i] < _ary[j] { _ary[i], _ary[j] = _ary[j], _ary[i] } } } return _ary } [AL&DS] 선형해결법 만약 배열 내 중복값이 있는지 없는지 찾기위해서는? func hasDuplicate(_ary []int) bool { step := 0 result := false for i := 0; i < len(_ary); i++ { for j := 0; j < len(_ary); j++ { step++ if i != j { if _ary[i] == _ary[j] { return true } } } } fmt.Println("step :", step) return result } 이를 선형해결법으로 개선해보자면? func linearSolution(_ary []int) bool { tempMap := make(map[int]bool) result := false for i := 0; i < len(_ary); i+.. 이전 1 2 3 4 5 6 ··· 8 다음