ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • playdata 프로그래머스 기초알고리즘3
    파이썬/알고리즘 공부 2021. 7. 26. 01:16
    728x90

    playdata 프로그래머스 기초알고리즘3


    23.모의고사


    문제는 이와 같다.
    이런식으로 입출력이 된다.

    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)
    
    아스키 코드를 활용한 것이다

    댓글

Designed by Tistory.