def solution(n, lost, reserve):
    answer = 0
    student = [0]*(n+1)
    for k in lost:
        student[k] = -1
    for k in reserve:
        student[k] += 1

    for i in range(1,n+1):
        if student[i] > 0:
            for new_student in [i-1,i+1]:
                if 1<=new_student <=n:
                    if student[new_student] == -1:
                        student[i] -= 1
                        student[new_student] += 1
                        break
    for i in range(1,n+1):
        if student[i] >=0:
            answer += 1
    return answer

단순하게 풀었다.

 

stduent 만큼의 배열을 만들어 준 다음 index가 벗어나지 않게 앞에서부터 차근차근 나눠주는걸로했다.

 

그리고 답은 0 이상의 개수를 구해서 출력해주었다.

 

 

def solution(n, lost, reserve):
    answer = 0
    student = [0]*(n+1)
    for k in lost:
        student[k] = -1
    for k in reserve:
        student[k] += 1
    
    for i in range(1,n+1):
        if student[i] > 0:
            for new_student in [i-1,i+1]:
                if 1<=new_student <=n:
                    if student[new_student] == -1:
                        student[i] -= 1
                        student[new_student] += 1
                        break
                        
    answer = student.count(0) + student.count(1) -1
    return answer

 이런식으로 카운트 method를 써주어도 된다.

def solution(answers):
    ans = []
    person3 = [3,3,1,1,2,2,4,4,5,5]
    person2 = [2,1,2,3,2,4,2,5]
    result = [0,0,0]
    for ind,answer in enumerate(answers):
        if answer == (ind)%5+1:
            result[0] += 1
        if answer == person2[ind%len(person2)]:
            result[1] += 1
        if answer == person3[ind%len(person3)]:
            result[2] += 1

    max_result = max(result)
    for k in range(3):
        if result[k] == max_result:
            ans.append(k+1)
    return ans

 

 

반복되는 수들을 list로 만들어준다음 modulo 계산을 통해 해당위치의 값과 비교를 해주면 된다.

import collections
def solution(participant, completion):
    answer = collections.Counter(participant) - collections.Counter(completion)
    return list(answer)[0]

Couter를 이용해 쉽게 풀 수 있다. 

from itertools import combinations
def solution(numbers):
    answer = []
    answer = set(answer)
    for k in combinations(numbers,2):
        answer.add(sum(k))
    answer = list(answer)
    answer.sort()
    return answer

콤비네이션을 이용해 쉽게 풀었다.

 

그리고 sort를 해주었다.

+ Recent posts