프로그래머스 풀이 33

[프로그래머스] Lv1. 2016년 (파이썬)

금요일을 0번째 요일로 보고 각 달마다 일 수와 b일까지의 일수를 더해준 다음에 7로 나눈다. def solution(a, b): answer = '' k=["FRI","SAT","SUN",'MON','TUE','WED','THU'] #금요일부터 시작 d=0 # 일 수 for i in range(1,a): if i in [1,3,5,7,8,10]: #31일인 달 d+=31 elif i in[4,6,9,11]: #30일인 달 d+=30 elif i == 2: #29일인 달 d+=29 d+=b-1 #b일에서 1빼줌 answer=k[d%7] #일 수를 7로 나눈 나머지 return answer

[프로그래머스] Lv.1 두 개 뽑아서 더하기 (파이썬)

배열의 길이가 100이하이기 때문에 이중 for문을 써도 절대 시간초과가 안난다. 두 값을 더한 것을 정답배열에 넣고 요리조리 볶아준다. def solution(numbers): answer = [] for i in range(len(numbers)-1): for j in range(i+1,len(numbers)): answer.append(numbers[i]+numbers[j]) #두 숫자를 더한 값 append answer=list(set(answer)) #중복값 제거 answer.sort() #오름차순으로 return answer

[프로그래머스] Lv1. 실패율 (파이썬)

이중 for문을 이용해서 현재 스테이지별 유저의 스테이지를 탐색해줬다. 정렬은 값이 0~1이니 -1로 바꿔가면서 최대값을 찾았다. 처음엔 스테이지에 도달했지만 클리어하지 못한 유저들과 스테이지에 도달한 유저들 모두 이중 for문 안에서 구하니 시간초과가 3개 나왔다... 그래서 len(stages)를 이용, 실패한 유저씩 빼주면 되더라. def solution(N, stages): a= [] b=[] k= len(stages) for i in range(N): c=0 #실패한 유저수 스테이지마다 초기화 for j in range(len(stages)): #계속 변하는 k로 두지않게 주의 if stages[j]==i+1: #스테이지에 도달했지만 클리어하지 못한 유저들 c+=1 if c!=0: a.appen..