티스토리 뷰
반응형
4880. sw expert academy 토너먼트 카드게임
문제의 저작권은 SW Expert Academy에 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
def sol(st, en):
selection = [st, en]
solve = [[0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 1, 0, 0]]
res = solve[data[st]][data[en]]
return selection[res]
def div(start, end):
if start == end:
return start
st = div(start, (start+end)//2)
en = div((start+end)//2 + 1, end)
return sol(st, en)
TC = int(input())
for tc in range(1, TC+1):
N = int(input())
data = [0] + list(map(int, input().split()))
result = div(1, N)
print("#%d %d"%(tc, result))
|
cs |
Divide and Conquer (분할정복)
위의 문제 풀이 방법은 분할 정복 방법으로 접근해서 풀었다. 재귀에 대한 기본이 없다면 이해하기 힘들다.
분할 정복에 대한 개념은 알고리즘 부분을 참고 하면 좋을 듯하다.
가위바위보를 좀 신기 하게 접근했다.
def sol(st, en):
selection = [st, en]
solve = [[0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 1, 0, 0]]
res = solve[data[st]][data[en]]
return selection[res]
1 가위
2 바위
3 보
solve[x][y]라고 예를 들면 x와 y이에 가위바위보 중 하나가 들어가고
x가 이기거나 비기면 0을 출력하고 y가 이기면 1을 출력하게 했다.
그 결과 값으로 미리 list로 만들어논 selection에 넣으면 승자가 나오게 된다.
반응형
'알고리즘 > sw' 카테고리의 다른 글
[SW Expert Academy] 5097번 회전 python (0) | 2020.04.03 |
---|---|
4881. [파이썬 S/W 문제해결 기본] 5일차 - 배열 최소 합_python (0) | 2020.03.29 |
4875. [파이썬 S/W 문제해결 기본] 5일차 - 미로_python (0) | 2020.03.28 |
4873. [파이썬 S/W 문제해결 기본] 4일차 - 반복문자 지우기_python (0) | 2020.03.28 |
4871. [파이썬 S/W 문제해결 기본] 4일차 - 그래프 경로_python (0) | 2020.03.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vuejs
- mongoDB
- Python
- TensorFlow
- login
- Vue
- Deque
- 자연어처리
- read_csv
- UserCreationForm
- Express
- react autoFocus
- typescript
- 클라우데라
- next.config.js
- nextjs autoFocus
- useHistory 안됨
- react
- django
- pandas
- BFS
- 자료구조
- NextJS
- useState
- DFS
- JavaScript
- logout
- nodejs
- error:0308010C:digital envelope routines::unsupported
- Queue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함