전체 글
-
[golang] array, slice, map 함께 쓰기Go lang 실습 2020. 12. 14. 18:16
이런 array는 어떻게? [{"1": 2, "3": 4}, {"5": 6}, {"7": 8, "9": 0}] package main import ( "fmt" ) func main() { array_map := [3]map[string]int{} array_map[0] = map[string]int{"1": 2} array_map[0]["3"] = 4 array_map[1] = map[string]int{} array_map[1]["5"] = 6 array_map[2] = map[string]int{"7": 8, "9": 0} fmt.Println(array_map) // [map[1:2 3:4] map[5:6] map[7:8 9:0]] } 선언된 맵은 (reference 타입이므로) nil 값을 갖으..
-
[golang] map, setGo lang 실습 2020. 12. 13. 14:39
고 언어는 set이 없다. map으로 비슷하게 쓸 수는 있다. package main import ( "fmt" ) func add(s map[int]bool, v int) map[int]bool { s[v] = true return s } func main() { s := make(map[int]bool) s = add(s, 1) s = add(s, 2) s = add(s, 3) s = add(s, 2) fmt.Println(s) delete(s, 2) fmt.Println(s) } map[1:true 2:true 3:true] map[1:true 3:true] bool이 쓸데없이 메모리를 차지한다. 대신 빈 구조체를 사용하자. 디스커버리 go 언어. https://book.naver.com/bookd..
-
이진 변환 반복하기코딩 테스트/Level 2 2020. 12. 9. 00:00
이진 변환 반복하기 월간 코드 챌린지 시즌1 529명 완료 https://programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 고(GO) import "strconv" func solution(s string) []int { removed, i := 0, 0 for ; s != "1"; i++ { length := 0 for _, v := range s { if v == '1' { length += 1 } } removed += len(s) - length s = strconv.FormatInt(int64(length), 2) } return []int{i, removed} } 파이썬(python) ..
-
내적코딩 테스트/Level 2 2020. 12. 8. 18:17
내적 월간 코드 챌린지 시즌1 1207명 완료 programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr GO func solution(a []int, b []int) (c int) { for i, v := range a { c += v * b[i] } return } python def solution(a, b): answer = 0 for c, d..
-
dB, decibel, 데시벨Sound and MIDI 2020. 11. 29. 23:07
요약 1. dB는 비율이다. 2. 좀 더 정확히 말하자면, dB는 비율의 로그 값이다. 3. 비율로 어떤 값을 표현하기 위해선 기준이 필요하다. 주유소에 가서 '2배 넣어주세요.'라고 할 수는 없지 않은가? '10리터의 2배 넣어주세요', '만 원 치의 반만 넣어주세요' 등은 가능하다. 물론 실제로 그렇게 이야기하진 않겠지만... 4. dBSPL은 '귀에 들리는 최소한의 음압'을 기준으로 한다. 5. '음의 세기'는 음압의 '제곱'에 비례한다. 6. 그러므로 '음압'이 '2배'가 되면 '음의 세기'는 6dB가 올라간다. 7. '음의 세기', '전력(W)'이 2배가 되면 '음의 세기', '전력'은 3dB가 올라간다. 로그, 상용 로그 고등학교 수학에서 로그를 배운 기억을 되살려 보자. 'log10100 =..
-
[Python] Tic-Tac-Toe: Minimax algorithmPython/파이썬 자료구조 알고리듬 2020. 11. 20. 20:36
틱-택-토 틱택토는 3*3 보드 위에 3칸 1줄(가로, 세로, 대각선 중 하나)을 먼저 완성하는 쪽이 이기는 보드게임입니다. 따라서 모든 경우의 수는 9! = 362_880 이 정도라면 가지치기를 하지 않고 퓨어한 미니 맥스 알고리듬으로 돌릴 수 있습니다. *막대기게임처럼 max에서 score==1, min에서 score==-1을 찾으면 break 했습니다. 이것만 하더라도 반응 속도가 상당히 빨라집니다. game_board: str = '_' * 9 AI = True HUMAN = False AI_MARK = 'X' HUMAN_MARK = 'O' def main(): player: bool = AI # player: bool = HUMAN print('initializing ...') if player..
-
파이썬, 미니맥스 알고리듬, 막대기 게임Python/파이썬 자료구조 알고리듬 2020. 11. 20. 20:18
게임의 룰 단순한 룰의 게임을 하나 만들어 보겠습니다. 어디서 본 게임인데 이름을 모르겠네요. 막대기 게임이라고 해두죠. PS) 검색해 본 결과 이 게임은 NIM 게임 중 하나입니다. ex) 배스킨라빈스31 게임 2인용 게임입니다. 10개의 빈칸이 있습니다. 교대로 빈칸을 채웁니다. 한쪽부터 순서대로 차곡차곡 이어서 채워야 합니다. (=stack) 빈칸을 두는 것은 안됩니다. 한 번에 1에서 3개까지 채울 수 있습니다. 쉬는 것(0개)은 안됩니다. 마지막 칸을 채우는 사람이 이기는 겁니다. 코딩1 : 랜덤 말보다는 코드가 더 편한 것 같습니다. 알고리듬으로 처리해야 할 부분을 일단은 랜덤으로 두었습니다. from random import randint AI = True HUMAN = False class..