def solution(answers):
first = [1, 2, 3, 4, 5]
second = [2, 1, 2, 3, 2, 4, 2, 5]
third = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
count = [0,0,0] #//first, second, third의 요소들이 answers와 일치할 경우 각자리에 1이 플러스 된다.
answer = [] #//ex)answers =1,2,3,4,5:return[1],answers =1,3,2,4,2:return[1,2,3]-각각 2문제씩 맞춤
#// 문제가 많이 있을경우
for i in range(len(answers)):
if answers[i] == first[i%len(first)]:
count[0]+=1
if answers[i] == second[i%len(first)]:
count[1]+=1
if answers[i] == third[i%len(first)]:
count[2]+=1
for j in range(len(count)):
if count[j] == max(count):
answer.append(j+1)
return answer
24.완주하지 못한 선수
def solution(participant, completion):
#// 계산하기 쉽게 참가자 완주자 정렬을 해준 후 개수를 맞춰주기 위해 완주자에 1을 넣어 인덱스 수를 맞춰준다.
participant.sort()
completion.sort()
completion.append("1")
i에 인덱스값을 받아 참가자, 완주자 인덱스가 다를 경우 해당하는 값을 answer에 넣어준다.
for i in range(len(participant)):
if participant[i] != completion[i]:
answer = participant[i]
return answer
25.2016년
def solution(a, b):
#// 금요일이 1일이였기 때문에 편의상 맨앞에 FRI를 넣어준다.
day = ["FRI", "SAT", "SUN", "MON", "TUE",'WED', "THU"]
#//내가 원하는달에 전달까지 날 수를 더해야기 때문에 편의상 앞에 0을 넣어준다.
month = [0, 31, 29, 31, 30, 31, 30, 31, 31,30,31, 30, 31]
return day[(sum(month[:a])+b)%7-1]
#//원하는 요일전까지 날 수를 더한후 몇일인지 입력한 b 을 더해 7로 나눈후 인덱스는 0부터 시작해 1을 빼주면 요일을 구할 수 있다.
27. 예산
<문제>입출력 예시
def solution(d, budget):
#//작은값부터 처리할 수 있으므로 값을 정렬해준다.
d.sort
#// 요소들의 합이 예산보다 작을때까지 팝해준다
while sum(d) > budget:
d.pop()
#// 팝한뒤에 값의 길이를 측정하면 몇개까지 구매할 수 있는지 구할 수 있다.
return len(d)
29.시저암호
#//
chr()는 숫자를 문자로, ord는 문자를 숫자로 바꾸는 함수이다 A = 65, a= 97 알아두자!
def solution(s, n):
s = list(s)
for i in range(len(s)):
if s[i].isupper():
s[i]=chr((ord(s[i])-ord('A')+ n)%26+ord('A'))
#// s[i] = A, ord(s[i]) = 65--->(65-65+1) % 26 +65= 66
#//66을 문자로 바꿔주면 B, 이런형식이다.
elif s[i].islower():
s[i]=chr((ord(s[i])-ord('a')+ n)%26+ord('a'))
print(s)
return "".join(s)
아스키 코드를 활용한 것이다