diff --git a/climbing-stairs/changchanghwang.go b/climbing-stairs/changchanghwang.go new file mode 100644 index 000000000..5645c9d5d --- /dev/null +++ b/climbing-stairs/changchanghwang.go @@ -0,0 +1,10 @@ +// Time complexity, O(n) +// Space complexity, O(1) +// 피보나치 수열로 풀이가 가능하다. +func climbStairs(n int) int { + a, b := 1, 1 + for ; n > 1; n-- { + a, b = b, a+b + } + return b +} diff --git a/valid-anagram/changchanghwang.go b/valid-anagram/changchanghwang.go new file mode 100644 index 000000000..8b2cc67d2 --- /dev/null +++ b/valid-anagram/changchanghwang.go @@ -0,0 +1,24 @@ +// Time complexity, O(n) +// Space complexity, O(1) +func isAnagram(s string, t string) bool { + if len(s) != len(t) { + return false + } + count := make([]int, 26) + + for index, _ := range count { + count[index] = 0 + } + + for i := 0; i < len(s); i++ { + count[int(s[i])-int('a')]++ // s의 문자를 카운트하고 + count[int(t[i])-int('a')]-- // a의 문자를 -1 한다. + } + + for _, val := range count { + if val != 0 { // 0이 아니라면 다른 문자열이 있는것이기 때문에 false + return false + } + } + return true +}