Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Programmers/Been/Week1/달리기_경주.py
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions Programmers/Been/Week2/모의고사.py
Original file line number Diff line number Diff line change
@@ -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
19 changes: 19 additions & 0 deletions Programmers/Been/Week2/숫자_문자열과_영단어.py
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions Programmers/Been/Week2/영어_끝말잇기.py
Original file line number Diff line number Diff line change
@@ -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]
6 changes: 6 additions & 0 deletions Programmers/Been/Week2/최댓값과_최솟값.py
Original file line number Diff line number Diff line change
@@ -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}"
10 changes: 10 additions & 0 deletions Programmers/Been/Week2/콜라_문제.py
Original file line number Diff line number Diff line change
@@ -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
15 changes: 15 additions & 0 deletions Programmers/Been/Week2/콜라츠_추측.py
Original file line number Diff line number Diff line change
@@ -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

4 changes: 4 additions & 0 deletions Programmers/Been/Week2/폰켓몬.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from collections import Counter
def solution(nums):
answer = Counter(nums)
return min(len(Counter(nums)), len(nums) // 2)
6 changes: 6 additions & 0 deletions Programmers/Been/Week3/땅따먹기.py
Original file line number Diff line number Diff line change
@@ -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])
7 changes: 7 additions & 0 deletions Programmers/Been/Week3/예상대진표.py
Original file line number Diff line number Diff line change
@@ -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
14 changes: 14 additions & 0 deletions Programmers/Been/Week3/옹알이(2).py
Original file line number Diff line number Diff line change
@@ -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