11688 Calkin-wilf tree 1
접근 : 문제를 읽자마자 트리형식, 재귀로 풀면 빠를 것 같다는 생각이 들어 바로 구현
- 문자열, 분모에 들어갈 수, 분자에 들어갈 수를 넘겨주고 문자열의 0번째로 조건 판별
- 재귀 종료 조건 : 문자열의 길이가 0일 때 == 더 이상 깊게 들어갈 필요가 없을 때
def tree(idx):
global route,up,down
if route[idx] == 'L':
down = up+down
else:
up = up+down
if idx == len(route)-1:
return
else:
tree(idx+1)
for tc in range(int(input())):
route = list(input())
up, down = 1, 1
result = tree(0)
print("#{} {} {}".format(tc+1,up,down))
5431 민석이의 과제 체크하기
for tc in range(int(input())):
N,Done = map(int, input().split())
info = list(map(int, input().split()))
r = list(filter(lambda x:x not in info,range(1,N+1)))
print("#{} {}".format(tc+1, " ".join(map(str,r))))
2805 농작물 수확하기
규칙을 찾으면 수월하게 풀 수 있는 문제
for tc in range(int(input())):
N = int(input())
ground = [input() for _ in range(N)]
cnt = 0
for i in range(N):
pick = abs(i-N//2)
scope = ground[i][pick:N-pick]
for profit in scope:
cnt += int(profit)
print("#{} {}".format(tc+1, cnt))
이 문제에서 input을 받을 때 그냥 input()으로 받을 수도 있고, list(input())으로 받을 수도 있는데 은근히 시간차이가 살짝 난다.
1228 암호문 1
조건 맞춰서 차근차근 구현하면 금방 풀림
for tc in range(10):
a = int(input())
b = list(map(int, input().split()))
c = int(input())
d = list(input().split())
for i in range(len(d)):
if d[i] == 'I':
idx = int(d[i+1])
nums = int(d[i+2])
for j in range(nums):
b.insert(idx+j,int(d[i+2+(j+1)]))
else:
continue
print('#{} {}'.format(tc+1,' '.join(map(str,b[:10]))))
'Problem Solving > SWEA' 카테고리의 다른 글
[ SWEA ] D3 - 5515, 1208, 4466, 1229, 3142 - python 문제풀이 (0) | 2021.07.07 |
---|---|
[ SWEA ] D3 - 3456, 1209, 9700, 5549 - python 문제풀이 (0) | 2021.07.06 |
[ SWEA ] D3 - 1213, 1234, 1240, 3314, 4751 - python 문제풀이 (0) | 2021.07.02 |
[ SWEA ] D3 - 1220, 1216, 5601, 10570 - python 문제풀이 (0) | 2021.07.01 |
[ SWEA ] D3 - 1215, 1225, 1289, 10505 - python 문제풀이 (0) | 2021.06.30 |
댓글