오늘도 힘내서...ㅠㅠ!!!
절대 안 쉬겠다했는데 어제 장렬히 쉼...
눈찜질이랑 안마기 엄청 써줬더니 그나마 낫네요....
8시간 모니터 보고 하는 수업은 피로도가 진짜 상당한...ㅠㅠ
테케 55점...끙....
def solution(babbling):
answer = 0
possible = ["aya", "ye", "woo", "ma"]
for i in range(len(babbling)):
for j in possible:
if j in babbling[i]:
babbling[i] = babbling[i].replace(j, '', 1)
if babbling[i] == '':
answer += 1
return answer
if v*2 not in i
로 연속된 같은 발음이 없도록 체크해야한다.def solution(babbling):
answer = 0
possible = ["aya", "ye", "woo", "ma"]
for i in babbling:
for v in possible:
if v*2 not in i:
i=i.replace(v,' ') #' '으로 발음을 치환
if i.strip()=='': #치환 완료된 문자열의 공백을 제거하고 ''와 같다면
answer+=1
return answer
맞긴 했으나...^^ 이런 노가다식 코드는...ㅎㅎㅎ;;;
라고 생각했는데 남들 답도 비슷하네
def solution(numbers, hand):
answer = ''
# left, right 현재 손가락 좌표 표시하는 변수
left = (3,0)
right = (3,2)
# 0~9의 좌표를 미리 만들기
dic = {1:(0,0),2:(0,1),3:(0,2),4:(1,0),5:(1,1),
6:(1,2),7:(2,0),8:(2,1),9:(2,2),0:(3,1)}
# 2,5,8,0 좌표에서 left,right를 각각 빼서 크기 비교
for num in numbers:
x,y = dic[num]
if num in [1,4,7]:
answer+='L'
left = (x,y) #위치 갱신
elif num in [3,6,9]:
answer+='R'
right = (x,y) #위치 갱신
else:
#sum(abs(x,y - 두손의 현 좌표 각각))
xl,yl = left
xr,yr = right
distance_l = abs(x-xl)+abs(y-yl)
distance_r = abs(x-xr)+abs(y-yr)
#if min()
#크기 동등하면 hand에 있는 쪽으로 기록
if distance_l==distance_r:
answer += hand[0].upper()
if hand[0].upper()=='L':
left = (x,y)
else:
right = (x,y)
elif min(distance_l,distance_r)==distance_l:
answer+='L'
left = (x,y) #위치 갱신
else:
answer+="R"
right = (x,y) #위치 갱신
return answer
이거 처음에 board 형식이 감이 안 잡혀서 한참 헤맸다.
이런 식으로 생각해야 풀리는 문제;
def solution(board, moves):
answer = 0
result = []
for idx in moves:
idx -= 1
for row in range(len(board)):
if board[row][idx] != 0 :
result.append(board[row][idx])
if len(result)>=2 and result[-1]==result[-2]:
result.pop()
result.pop()
answer += 2
board[row][idx] = 0
break
return answer
정규표현식이랑 strip 둘 다 써봄
import re
def solution(new_id):
answer = ''
new_id = new_id.lower()
new_id = re.sub(r"[^a-z0-9\-_.]", "", new_id)
new_id = re.sub('\.+', '.', new_id)
new_id = new_id.strip('.')
new_id = 'a' if len(new_id) == 0 else new_id[:15]
new_id = re.sub('^[.]|[.]$', '', new_id)
if len(new_id) <= 2:
answer += (3-len(new_id))*new_id[-1]
return new_id+answer
마지막 부분을 한줄코딩으로 더 이쁘게 하셨다.
import re
def solution(new_id):
st = new_id
st = st.lower()
st = re.sub('[^a-z0-9\-_.]', '', st)
st = re.sub('\.+', '.', st)
st = re.sub('^[.]|[.]$', '', st)
st = 'a' if len(st) == 0 else st[:15]
st = re.sub('^[.]|[.]$', '', st)
st = st if len(st) > 2 else st + "".join([st[-1] for i in range(3-len(st))])
return st
from collections import deque
def solution(s):
ans = 0
q = deque(s)
while q:
a, b = 1, 0
x = q.popleft()
while q:
n = q.popleft()
if n == x:
a += 1
else:
b += 1
if a == b:
ans += 1
break
if a != b:
ans += 1
return ans