백준 9625 python
백준 9625 python
기본적으로 첫 시도로는 무식한 방법(브루트포스)을 선호한다. 문자열을 그대로 만들자
def get_next_brute(string):
new_chars = [] # new_string으로 해도 되지만 문자열 덧셈은 시간을 많이 잡아먹는다
for c in string:
if c == "A":
new_chars.append("B")
if c == "B":
new_chars.append("BA")
return "".join(new_chars)
시행횟수가 증가할 때마다 2배씩 길이가 증가하기 때문에 45까지하면 메모리가 터질 것이다.
개선하자.
직접 계산할 필요없이 A와 B의 개수만 세도 괜찮을 것 같다.
def get_next(a_cnt, b_cnt):
a_cnt = b_cnt # b => b,a가 되기 때문에 a가 생김
b_cnt = a_cnt + b_cnt #
return a_cnt, b_cnt
댓글
댓글 쓰기