WITH conf_rate AS (
SELECT
user_id
, COUNT(CASE WHEN action='confirmed' THEN 1 END)
/(COUNT(CASE WHEN action='timeout' THEN 1 END)+COUNT(CASE WHEN action='confirmed' THEN 1 END)) AS confirmation_rate
FROM
confirmations
GROUP BY
user_id
)
SELECT
s.user_id
, ROUND(IFNULL(confirmation_rate, 0), 2) AS confirmation_rate
FROM
signups s
LEFT JOIN conf_rate c
USING(user_id)
def solution(s):
answer = ''
i = len(s)//2
if len(s) % 2 == 0:
answer += s[i-1:i+1]
else:
answer += s[i]
return answer
→ 더 짧게 쓸 수 있지 않을까?
def solution(s):
return s[(len(s)-1)//2 : len(s)//2 + 1]
→ 추가로 아래와 같이 작성했더니 테스트 케이스 1, 2, 3을 통과하지 못했음… 왜지?
def solution(s):
a = len(s)
if a % 2 == 0 :
a = (a-2) / 2
else :
a = (a-1) / 2
return s[int(a) : -int(a)]
🡆 단어 길이가 1일 경우(e.g. 'a') 해당 코드로 출력이 안 됨!
🡆 단어 길이가 2일 경우(e.g. 'in') 해당 코드로 출력이 안 됨!
solution = lambda s: s[(len(s) - 1) // 2 : len(s) // 2 + 1]
def solution(n):
answer = ''
for i in range(1, n+1):
if i % 2 == 1:
answer += '수'
else:
answer += '박'
return answer
→ 더 짧은 방법도 생각해 보았음
def solution(n):
answer = '수박'*(n//2+1)
return answer[:n]
def solution(n):
return '수박'*(n//2) + '수'(n%2)
def solution(n):
return "".join(["수박"[i%2] for i in range(n)])
def solution(n):
return "수박" * int(n/2) + "수" if n % 2 else "수박" * int(n/2)
🡆 개인적으로는 2번이 가장 괜찮아 보임