Python/코딩테스트

[백준] 구현 기초 - 별 찍기 1~7

edoyyoy 2023. 9. 21. 00:08

백준 2438. 별찍기 1 

더보기
n = int(input())

for i in range(1, n+1):
    print("*"*i)

백준 2439. 별 찍기 - 2

더보기
n = int(input())

for i in range(1, n+1):
    print(" "*(n-i) + "*"*i)

백준 2440. 별 찍기 - 3

더보기
n = int(input())

for i in range(n, 0, -1):
    print("*"*i)

백준 2441. 별 찍기 - 4

더보기
n = int(input())

for i in range(n, 0, -1):
    print(" "*(n-i) + "*"*i)

백준 2442. 별 찍기 - 5

더보기
n = int(input())

for i in range(1, n+1):
    print(" "*(n-i) + "*"*(2*i-1))

백준 2443. 별 찍기 - 6

더보기
n = int(input())

for i in range(n, 0, -1):
    print(" "*(n-i) + "*"*(2*i-1))

백준 2444. 별 찍기 - 7

더보기
n = int(input())

for i in range(1, n+1):
    print(" "*(n-i) + "*"*(2*i-1))

for j in range(n-1, 0, -1):
    print(" "*(n-j) + "*"*(2*j-1))

새로 푼 코드로, 별 찍기 5와 6을 합친 결과로 표현했다.

 

n = int(input())
s = e = ((2*n)-1)//2

for i in range((2*n)-1):
    for j in range((2*n)-1):
        if s > j:
            print(" ", end="")
        elif s<=j and j<=e:
            print("*", end="")
        else:
            break
    print()

    if i < ((2*n)-1)//2:
        s -= 1
        e += 1
    else:
        s += 1
        e -= 1

예전에 블로그에 기술했던 풀이 방법으로 시간이 조금 더 걸린다.

 

2023.04.19 - [Python/코딩테스트] - [백준] 2444번 : 별 찍기 - 7