반응형
1074번 Z, 7490 0 만들기, 2751 수 정렬하기 3
1074 Z
재귀 함수 이용하는 건데 어렵다..
# 첫번째 풀이
def fibo(n, x, y):
global result
if n == 2:
if x == X and y == Y:
print(result)
return
result += 1
if x == X and y+1 == Y:
print(result)
return
result += 1
if x+1 == X and y == Y:
print(result)
return
result += 1
if x+1 == X and y+1 == Y:
print(result)
return
result += 1
return
fibo(n/2, x, y)
fibo(n/2, x, y + n/2)
fibo(n/2, x+n/2, y)
fibo(n/2, x+n/2, y+n/2)
result = 0
N, X, Y = map(int, input().split(' '))
fibo(2**N, 0, 0)
# 두번째 풀이
N, r, c = map(int, input().split())
def Z(sz, x, y):
if sz == 1:
return 0
sz //= 2
for i in range(2):
for j in range(2):
if x < sz * (i+1) and y < sz * (j+1):
return (i*2+j) * sz * sz + Z(sz, x-sz*i, y-sz*j)
print(Z(2**N, r, c))
얻은 것
- python3으로 돌려서 시간 초과. pypy3로 돌렸는데도 시간 초과. 근데 아무 코드 변경 없이 pypy3로 다시 돌리니 됐다. 이제 한 번으로 안되는지 모른다...
7490 0 만들기
import copy
def recursive(array, n):
if len(array) == n:
operators_list.append(copy.deepcopy(array))
return
array.append(' ')
recursive(array, n)
array.pop()
array.append('+')
recursive(array, n)
array.pop()
array.append('-')
recursive(array, n)
array.pop()
test_case = int(input())
for _ in range(test_case):
operators_list = []
n = int(input())
recursive([], n-1)
integers_list = [i for i in range(1, n+1)]
for operator in operators_list:
string = ''
for i in range(n-1):
string = string + str(integers_list[i]) + operator[i]
string = string + str(integers_list[-1])
if eval(string.replace(' ', '')) == 0:
print(string)
print()
얻은 것
- copy 라이브러리에서 deepcopy로 새로운 객체에 복제
- array.pop() 사용법
- eval() 함수는 수식으로 이루어진 문자열 계산 가능
2751 수 정렬하기 2
# 첫번째 풀이 sort() 사용
n = int(input())
array = []
for _ in range(n):
item = int(input())
array.append(item)
array.sort()
for i in array:
print(i)
# 두번째 풀이 sorted() 사용
n = int(input())
array = []
for _ in range(n):
item = int(input())
array.append(item)
array = sorted(array)
for i in array:
print(i)
얻은 것
- sort()의 경우 결과값으로 None 반환. 받는 변수 없어도 사용 가능
- sort() 사용법 : 리스트.sort()
- sortred()의 경우 결괏값으로 변수 있어야 함.
- sorted() 사용법 : sorted(iterable 객체). iterable 객체 : 리스트, 튜플, 딕셔너리 등
- append()의 경우 반환 값 None
반응형
'컴퓨터 > 백준 문제풀이' 카테고리의 다른 글
1302 베스트셀러, 1668 트로피진열, 1236 성 지키기 (0) | 2020.09.23 |
---|---|
11004 k번째 수, 1543 문서 검색, 1568 새 (0) | 2020.09.19 |
11650 좌표 정렬하기, 10989 수 정렬하기 3, 2747 피노나치 수 (0) | 2020.09.12 |
2750 수 정렬하기, 1427 소트인사이드, 10814 나이순정렬 (1) | 2020.09.12 |
5397. 키로거, 10930 SHA-256, 1920 수 찾기, 4195 친구 네트워크 (0) | 2020.09.11 |
댓글