def solution(babbling):
CANWORDS = ["aya", "ye", "woo", "ma"]
for i in range(len(babbling)):
while True:
try:
found_word_bool = [can_word in babbling[i] for can_word in CANWORDS]
babbling[i] = babbling[i].replace(CANWORDS[found_word_bool.index(True)], '0')
except:
break
bool_list = [word.isdigit() for word in babbling]
return bool_list.count(True)
def solution(dots):
answer = 0
if slope(dots[0],dots[1]) == slope(dots[2],dots[3]):
answer = 1
if slope(dots[0],dots[2]) == slope(dots[1],dots[3]):
answer = 1
if slope(dots[0],dots[3]) == slope(dots[1],dots[2]):
answer = 1
return answer
def slope(dot1,dot2):
return (dot2[1] - dot1[1] ) / (dot2[0] - dot1[0]) # 기울기 계산 (y축 차이 - x축 차이)
얘는 풀기 싫어서 코드 찾아봤다.
slope() 라는 함수 쓰면 쉽게 풀 수 있었다.
def solution(id_list, report, k):
# duplicate
report = list(set(report))
report_list = []
for i in report:
report_list.append(i.split(' '))
singo_dict = dict.fromkeys(id_list, 0)
for i in report_list:
singo_dict[i[1]] += 1
stop_id = [key for key, value in singo_dict.items() if value >= k]
result = dict.fromkeys(id_list, 0)
for report in report_list:
if report[1] in stop_id:
result[report[0]] += 1
else:
pass
answer = list(result.values())
return answer
이 문제가 젤 쉬웠다.
def solution(s):
i, x_count, notx_count = 0, 0, 0
split_list = []
while i < len(s):
x = s[0]
if s[i] == x:
x_count += 1
else:
notx_count += 1
i += 1
if x_count == notx_count:
split_list.append(s[:i])
s = s[i:]
i = 0
if s != '':
split_list.append(s)
answer = len(split_list)
return answer
for call in callings:
idx = players.index(call)
players[idx-1], players[idx] = players[idx], players[idx-1]
def solution(players, callings):
rank_dict = {player : rank for rank, player in enumerate(players)}
for call in callings:
idx = rank_dict[call]
rank_dict[call] -= 1
rank_dict[players[idx-1]] += 1
players[idx-1], players[idx] = players[idx], players[idx-1]
return players
rank_dict라는 딕셔너리를
{‘mumu’ : 0, 'seo' : 1, 'poe' : 2} 이런식으로 만들어서 인덱스를 저장하고 써서 시간을 단축할 수 있다!
그리고 저렇게 인덱스 번호로 바꾸는 걸 SWAP이라고 한다.
이 문제 풀면서 처음 알았다.