numbers
: 길이가 2이상 100이하인 정수 배열. 모든 수는 0이상 100이하
from itertools import combinations
def solution(n):
ans = []
for i in list(combinations(n, 2)):
ans.append(sum(i))
ans=set(ans)
return sorted(ans)
from itertools import combinations
def solution(n):
ans = set()
for i in list(combinations(n, 2)):
ans.add(sum(i))
return sorted(ans)
원래 몇 문제만 기록해두려고 했는데 그냥 다 올리기로 마음이 바뀜
쉬운것도 시간이 조금만 지나면 가물가물해져서 언넝 정리해둬야겠다
new_id
: 신규 유저가 입력한 아이디
1. 대문자 > 소문자
2. 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)만 남기기
3. 마침표(.)가 2번 이상 > 마침표(.) 하나
4. 마침표(.)가 처음/끝에 위치 > 제거
5. new_id가 빈 문자열이면 "a" 대입
6. 길이가 16 이상 > 16번째 문자부터 모두 제거. 제거 후 조건 4. 확인
7. 길이가 2자 이하 > new_id의 마지막 문자 길이가 3이 될 때까지 반복해서 끝에 붙임
import re
def solution(new_id):
ans=re.sub('[^a-z0-9\-_.]', '', new_id.lower())
ans=re.sub('\.+', '.', ans)
ans = re.sub('^[.]|[.]$', '', ans)
ans='a' if len(ans)==0 else ans[:15]
ans = re.sub('^[.]|[.]$', '', ans)
ans = ans if len(ans) > 2 else ans + "".join([ans[-1] for i in range(3-len(ans))])
return ans
나중에 보기 편하려고 단계별로 적어 둠
정규표현식은 볼때마다 새롭ㄷㅏ..★
n
: 전체 학생의 수
lost
: 체육복을 도난당한 학생들의 번호가 담긴 배열
reserve
: 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열
def solution(n, lost, reserve):
res= set(reserve) - set(lost)
los= set(lost) - set(reserve)
for r in res:
if r-1 in los:
los.remove(r-1)
elif r+1 in los:
los.remove(r+1)
return n-len(los)
a
, b
: 2016년 a월 b일
요일명
: SUN, MON, TUE, WED, THU, FRI, SAT
import datetime
from datetime import date
def solution(a, b):
day =['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']
return day[datetime.date(2016,a,b).weekday()]