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(1, len(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[-1] and 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 |