본문 바로가기

인공지능/Python

인공지능 교육 3일차

728x90
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(participant, completion):
    answer = ''
    dic = {}
    
    for i in participant:
        dic[i] = dic.get(i, 0+ 1
    
    for i in completion:
        dic[i] -= 1
        
    answer = [k for k, v in dic.items() if v>0]
    
    return answer[0]
cs

두개의 리스트를 비교하여 겹치지 않는 사람 출력(1명)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def solution(n, lost, reserve):
    answer = 0
    l = [1* (n + 2)
 
    for i in lost:
        l[i] -= 1
    for i in reserve:
        l[i] += 1
 
    for i in range(1len(l) - 1):
        if l[i] == 2:
            if l[i - 1== 0:
                l[i - 1= 1
            elif l[i + 1== 0:
                l[i + 1= 1
 
    answer = len([k for k in l if k > 0]) - 2
 
    return answer
cs

N개의 집합 중 lost는 -1 reserve는 +1하여 전체적으로 1을 유지 할 수 있게

 

1
2
3
4
5
6
7
8
9
10
11
def solution(numbers):
    numbers = [str(k) for k in numbers]
    numbers.sort(key = lambda x : (x * 4)[:4], reverse = True)
#ex) 12, 11 -> 1212|1212, 1111|1111 -> 1212 > 1111 -> 12, 11
#ex) 121, 1 -> 1211|21121121, 1111 ->1211 > 1111 -> 121, 1
#ex) 32, 3 -> 3232|3232, 3333 -> 3232 < 3333 -> 3, 32
    if numbers[0== '0':
        return '0'
    else:
        answer = ''.join(numbers)
    return answer
cs

리스트를 이용하여 조합하여 가장 큰수 만들기

숫자는 0 ~ 1000

숫자 * 4를 비교하여 더 큰 수를 큰 수로 정렬

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def solution(number, k):
    stack = []
 
    for i, num in enumerate(number):
        while len(stack) > 0 and num > stack[-1and k != 0:
            stack.pop()
            k -= 1
        if k == 0:
            stack += list(number[i:])
            break
        stack.append(num)
 
    for i in range(0, k):
        stack.pop()
 
    answer = ''.join(stack)
    return answer
cs

주어진 수에서 k만큼의 숫자를 제거하여 가장 큰 수 만들기

enumerate = ( i = index, num = number[i] )

앞에서 부터 삽입하여 더 큰 수가 나오면 작은 수 들을 제거

 

728x90
반응형

'인공지능 > Python' 카테고리의 다른 글

Matplotlib  (0) 2020.12.16
Pandas  (0) 2020.12.15
Numpy 연산  (0) 2020.12.14
인공지능 교육 2일차  (0) 2020.12.02