티스토리 뷰
반응형
문제:www.acmicpc.net/problem/14225
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import sys
input=sys.stdin.readline
N=int(input())
li=list(map(int,input().rstrip().split()))
visited=[False]*N
li.sort()
sumList=[]
maxNum=2000000
numList=[False]*(maxNum)
numList[0]=True
def func(ceil,aim,sum,ans):
if ceil==aim:
return
for i in range(len(li)):
if not ans:
visited[i]=True
sum+=li[i]
numList[sum]=True
ans.append(i)
func(ceil+1,aim,sum,ans)
ans.pop()
sum-=li[i]
visited[i]=False
elif not visited[i] and ans[-1]<i:
visited[i]=True
sum+=li[i]
ans.append(i)
numList[sum]=True
func(ceil+1,aim,sum,ans)
ans.pop()
sum-=li[i]
visited[i]=False
func(0,len(li),0,[])
cnt=1
while True:
if numList[cnt]==False:
print(cnt)
break
else:
cnt+=1
|
cs |
윗 부분은 내가 작성한 코드다. 풀이방법은 모든 수열을 만들면서 조사하는 형식으로 했다. 그러면서 가능한 수들은 리스트에서 True로 설정하고 1부터 반복문을 돌면서 for문에서 False를 만나면 답을 출력하는 형식으로 작성하였다.
근데 이 코드의 단점은 시간복잡도가 꽤 큰 편에 속한 것이 문제였다.
그래서 다른 사람의 코드를 참고해봤다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
n = int(input())
a = list(map(int,input().split()))
c = [False]*(n*100000+10)
def go(i, sum):
if i == n:
c[sum] = True
return
go(i+1,sum+a[i])
go(i+1,sum)
go(0,0)
i = 1
while True:
if c[i] == False:
break
i += 1
print(i)
|
cs |
윗 코드를 설명해보자면 이제 각각의 수는 포함되는 경우와 포함되지 않는 경우 두가지 경우가 있는데 이를 코드로 표현하면 go함수와 같다.
그리고 다음 반복문은 내 코드와 같다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
16198번 에너지 모으기 백준 파이썬 (0) | 2020.12.20 |
---|---|
1339번 단어 수학 백준 파이썬 (0) | 2020.12.17 |
2250번 트리의 높이와 너비 백준 파이썬 (0) | 2020.12.16 |
1967번 트리의 지름 백준 파이썬 (0) | 2020.12.15 |
1991번 트리 순회 백준 파이썬 (0) | 2020.12.15 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그래프
- postgres
- PostgreSQL
- 2021 KAKAO BLIND RECRUITMENT
- 알고리즘
- 면접
- 프로그래머스
- 백준
- Spring
- Python
- ubuntu
- Pattern
- Linux
- Java
- BFS
- docker-compose
- thread
- setattr
- 자바
- django
- 파이썬
- Celery
- dockerignore
- Command Line
- Collections
- docker
- env
- 카카오
- DRF
- headers
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함