본문 바로가기
📊 Algorithm/BOJ

⚠︎ 백준 - 2447 별 찍기 - 10

by 정람지 2024. 4. 8.

단계별 풀기 "재귀" 를 끗내자

우리 알고리즘 시험범위다

 

재귀 단계

피보나치 수 역시 단순 for문으로도 구할 수 있지만, 학습을 위해 재귀를 써 봅시다.

www.acmicpc.net

도움되

는거맞겠


2447

⚠︎ 별 찍기 - 10

티어 : 🥇5

분류 : 재귀

 

원래 있던 요소를 가지고 그 옆에 같은 걸 3번씩 붙이고,같은 걸 그 다음 줄에 한줄한줄 추가한 후에 그 옆은 그 길이만큼 비우고 엥 아니 그러면 반복문이되는데 엥

이게아니라

 

엥 반복문으로풀엇다

import sys
import math

N = int(sys.stdin.readline())

def Meu(n):
    # hmm
    pass

result_list = ["*"]
n = int(math.log(N,3))

for i in range(n):
    sample = []

    for line in result_list: # 윗부분
        sample.append(line*3)
    for line in result_list: # 가운뎃 부분
        sample.append(line+ " "*len(line)+line)
    for line in result_list: # 마지막 부분
        sample.append(line*3)

    result_list = sample
    
for line in result_list:
    print("".join(line))

엥근데 틀렸다고 나온다!$

근데 예제 넣어보다가 3^5가이상한것이다!

4.999999999999999가 나와서 int 4로 들어간다

는 이제 쓰레기같은 방법으로 해결했다

import sys
import math

N = int(sys.stdin.readline())

def Meu(n):
    # hmm
    pass

result_list = ["*"]
n = int(math.log(N,3)+0.1)

for i in range(n):
    sample = []

    for line in result_list: # 윗부분
        sample.append(line*3)
    for line in result_list: # 가운뎃 부분
        sample.append(line+ " "*len(line)+line)
    for line in result_list: # 마지막 부분
        sample.append(line*3)

    result_list = sample
    
for line in result_list:
    print("".join(line))

사실 round 쓰기랑 반복문 부분 //3으로 건드리기도 생각했는데

저게 너무 매력적으로 보이는바람에...

맞았으면 된

거 

 

아님


 

 

컴퓨터 실수 연산의 한계와 파이썬에서의 대처법

컴퓨터가 연산 오차에 취약한 이유와 이를 예방하기 위한 파이썬의 표준 라이브러리 decimal & fractions

velog.io

내일 시간나면 한번 봐봐야지


아 재귀로도 풀어보려고햇는데..

내 meu 함수...ㅁ같이생겨서이름열심히지었는데..

이사람들은 안 자나..? 3시에,,진짜 요즘 다아아아아 열심히한다,,,,