diff --git "a/Programmers/Been/Week1/\353\213\254\353\246\254\352\270\260_\352\262\275\354\243\274.py" "b/Programmers/Been/Week1/\353\213\254\353\246\254\352\270\260_\352\262\275\354\243\274.py" new file mode 100644 index 0000000..1b5b419 --- /dev/null +++ "b/Programmers/Been/Week1/\353\213\254\353\246\254\352\270\260_\352\262\275\354\243\274.py" @@ -0,0 +1,14 @@ +def solution(players, callings): + rank = {name: i for i, name in enumerate(players)} + order = players[:] + + for name in callings: + idx = rank[name] + prev_idx = idx - 1 + prev_name = order[prev_idx] + + order[idx], order[prev_idx] = order[prev_idx], order[idx] + rank[name] = prev_idx + rank[prev_name] = idx + + return order \ No newline at end of file diff --git "a/Programmers/Been/Week2/\353\252\250\354\235\230\352\263\240\354\202\254.py" "b/Programmers/Been/Week2/\353\252\250\354\235\230\352\263\240\354\202\254.py" new file mode 100644 index 0000000..1209714 --- /dev/null +++ "b/Programmers/Been/Week2/\353\252\250\354\235\230\352\263\240\354\202\254.py" @@ -0,0 +1,18 @@ +def solution(answers): + answer = [] + patterns = [ + [1,2,3,4,5], + [2,1,2,3,2,4,2,5], + [3,3,1,1,2,2,4,4,5,5] + ] + counts = [0, 0, 0] + + for i in range(len(answers)): + for j in range(3): + if answers[i] == patterns[j][i % len(patterns[j])]: + counts[j] += 1 + + max_count = max(counts) + answer = [i+1 for i in range(3) if counts[i] == max_count] + + return answer \ No newline at end of file diff --git "a/Programmers/Been/Week2/\354\210\253\354\236\220_\353\254\270\354\236\220\354\227\264\352\263\274_\354\230\201\353\213\250\354\226\264.py" "b/Programmers/Been/Week2/\354\210\253\354\236\220_\353\254\270\354\236\220\354\227\264\352\263\274_\354\230\201\353\213\250\354\226\264.py" new file mode 100644 index 0000000..47e2350 --- /dev/null +++ "b/Programmers/Been/Week2/\354\210\253\354\236\220_\353\254\270\354\236\220\354\227\264\352\263\274_\354\230\201\353\213\250\354\226\264.py" @@ -0,0 +1,19 @@ +def solution(s): + word_to_num = { + "zero": "0", "one": "1", "two": "2", "three": "3", "four": "4", + "five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9" + } + answer = '' + i = 0 + while i < len(s): + if s[i].isdigit(): + answer += s[i] + i += 1 + else: + for k,v in word_to_num.items(): + if s[i: i+len(k)] == k: + answer += v + i += len(k) + pass + + return int(answer) \ No newline at end of file diff --git "a/Programmers/Been/Week2/\354\230\201\354\226\264_\353\201\235\353\247\220\354\236\207\352\270\260.py" "b/Programmers/Been/Week2/\354\230\201\354\226\264_\353\201\235\353\247\220\354\236\207\352\270\260.py" new file mode 100644 index 0000000..57c3c2b --- /dev/null +++ "b/Programmers/Been/Week2/\354\230\201\354\226\264_\353\201\235\353\247\220\354\236\207\352\270\260.py" @@ -0,0 +1,12 @@ +def solution(n, words): + answer = [] + for i in range(len(words)): + if answer == []: + answer.append(words[i]) + elif answer != [] and words[i-1][-1] == words[i][0] and words[i] not in answer: + answer.append(words[i]) + else: + return [i % n + 1, i // n + 1] + + + return [0,0] \ No newline at end of file diff --git "a/Programmers/Been/Week2/\354\265\234\353\214\223\352\260\222\352\263\274_\354\265\234\354\206\237\352\260\222.py" "b/Programmers/Been/Week2/\354\265\234\353\214\223\352\260\222\352\263\274_\354\265\234\354\206\237\352\260\222.py" new file mode 100644 index 0000000..ab1e888 --- /dev/null +++ "b/Programmers/Been/Week2/\354\265\234\353\214\223\352\260\222\352\263\274_\354\265\234\354\206\237\352\260\222.py" @@ -0,0 +1,6 @@ +def solution(s): + answer = s.split(" ") + result = list(map(int, answer)) + min_val = min(result) + max_val = max(result) + return f"{min_val} {max_val}" \ No newline at end of file diff --git "a/Programmers/Been/Week2/\354\275\234\353\235\274_\353\254\270\354\240\234.py" "b/Programmers/Been/Week2/\354\275\234\353\235\274_\353\254\270\354\240\234.py" new file mode 100644 index 0000000..aecc1cc --- /dev/null +++ "b/Programmers/Been/Week2/\354\275\234\353\235\274_\353\254\270\354\240\234.py" @@ -0,0 +1,10 @@ +def solution(a, b, n): + answer = 0 + num = n + while num >= a: + time = num // a + num_cola = time * b + answer += num_cola + num = num % a + num_cola + + return answer \ No newline at end of file diff --git "a/Programmers/Been/Week2/\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.py" "b/Programmers/Been/Week2/\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.py" new file mode 100644 index 0000000..d68228f --- /dev/null +++ "b/Programmers/Been/Week2/\354\275\234\353\235\274\354\270\240_\354\266\224\354\270\241.py" @@ -0,0 +1,15 @@ +def solution(num): + answer = 0 + if num == 1: + return 0 + while num != 1 and answer < 500: + if num % 2 == 0: + num = num // 2 + answer += 1 + elif num % 2 != 0: + num = num * 3 + 1 + answer += 1 + if answer == 500: + return -1 + return answer + \ No newline at end of file diff --git "a/Programmers/Been/Week2/\355\217\260\354\274\223\353\252\254.py" "b/Programmers/Been/Week2/\355\217\260\354\274\223\353\252\254.py" new file mode 100644 index 0000000..a8275bc --- /dev/null +++ "b/Programmers/Been/Week2/\355\217\260\354\274\223\353\252\254.py" @@ -0,0 +1,4 @@ +from collections import Counter +def solution(nums): + answer = Counter(nums) + return min(len(Counter(nums)), len(nums) // 2) \ No newline at end of file diff --git "a/Programmers/Been/Week3/\353\225\205\353\224\260\353\250\271\352\270\260.py" "b/Programmers/Been/Week3/\353\225\205\353\224\260\353\250\271\352\270\260.py" new file mode 100644 index 0000000..35cefbe --- /dev/null +++ "b/Programmers/Been/Week3/\353\225\205\353\224\260\353\250\271\352\270\260.py" @@ -0,0 +1,6 @@ +def solution(land): + for i in range(1, len(land)): + for j in range(4): + land[i][j] += max(land[i-1][:j] +land[i-1][j+1:]) + + return max(land[-1]) \ No newline at end of file diff --git "a/Programmers/Been/Week3/\354\230\210\354\203\201\353\214\200\354\247\204\355\221\234.py" "b/Programmers/Been/Week3/\354\230\210\354\203\201\353\214\200\354\247\204\355\221\234.py" new file mode 100644 index 0000000..95e0ab1 --- /dev/null +++ "b/Programmers/Been/Week3/\354\230\210\354\203\201\353\214\200\354\247\204\355\221\234.py" @@ -0,0 +1,7 @@ +def solution(n, a, b): + answer = 0 + while a != b: + a = (a + 1) // 2 + b = (b + 1) // 2 + answer += 1 + return answer \ No newline at end of file diff --git "a/Programmers/Been/Week3/\354\230\271\354\225\214\354\235\264(2).py" "b/Programmers/Been/Week3/\354\230\271\354\225\214\354\235\264(2).py" new file mode 100644 index 0000000..6b9ad61 --- /dev/null +++ "b/Programmers/Been/Week3/\354\230\271\354\225\214\354\235\264(2).py" @@ -0,0 +1,14 @@ +from itertools import groupby + +def solution(babbling): + words = ["aya", "ye", "woo", "ma"] + answer = 0 + + for word in babbling: + for wd in words: + word = word.replace(wd, wd + " ") + parts = word.split() + if all(p in words for p in parts) and len(parts) == len(list(groupby(parts))): + answer += 1 + + return answer \ No newline at end of file diff --git a/Programmers/Been/Week4/fail_rate.py b/Programmers/Been/Week4/fail_rate.py new file mode 100644 index 0000000..108b363 --- /dev/null +++ b/Programmers/Been/Week4/fail_rate.py @@ -0,0 +1,15 @@ +from collections import Counter +def solution(N, stages): + counter = Counter(stages) + total = len(stages) + fail_rate = {} + + for stage in range(1, N+1): + if total == 0: + fail_rate[stage] = 0 + else: + fail_rate[stage] = counter[stage] / total + total -= counter[stage] + + return sorted(fail_rate, key=lambda x: fail_rate[x], reverse=True) + \ No newline at end of file diff --git a/Programmers/Been/Week4/split_string.py b/Programmers/Been/Week4/split_string.py new file mode 100644 index 0000000..53eee71 --- /dev/null +++ b/Programmers/Been/Week4/split_string.py @@ -0,0 +1,16 @@ +def solution(s): + answer = 0 + cnt = 0 + std = 0 + + for i in s: + if cnt == 0: + std = i + answer += 1 + + if i == std: + cnt += 1 + else: + cnt -= 1 + + return answer \ No newline at end of file