코딩 테스트/Baekjoon

B3 2444. 별 찍기

  • -
728x90
반응형

문제 보기 : 2444번: 별 찍기 - 7 (acmicpc.net)


문제


작성 코드

#1차

a = int(input())
b = 2*a-1
for i in range(1,a+1): 
    p = 2*i-1
    print(" "*((b-p)//2),"*"*p," "*((b-p)//2))
for i in range(1,a):
    p = i
    print(" "*p,"*"*(b-2*p)," "*p)

처음꺼는 이렇게 작성했음

출력은 완벽하게 되는데 출력 방식이 잘못 됐다고 해서 for문 두개 겹쳐써서 그런 것 같아서 두개를 연결하는 방식으로 변경했다

#2차

a = int(input())
b = 2*a-1

for i in range(1,b+1): 
    if i>a:
        p = i-a
        print(" "*p,"*"*(b-2*p))
    else: 
        p = 2*i-1
        print(" "*((b-p)//2), "*"*p)

머리 쥐어짜서 연결해놨는데 또 안된다고.. 그래서 질문 게시판도 참고했는데

" "*((b-p)//2),"*"*p," "*((b-p)//2) 가 아니라 맨 뒷부분은 공란이어야한다고 했다.

그래서 지우고 냈는데도 또 출력 방식 잘못 됐다고 해서 다시 질문게시판을 참고..

마지막으로 리스트에 print문 내의 문자열을 원소로 넣어서 마지막에 주르륵 출력하는 방식으로 시도했다

#3차

a = int(input())
b = 2*a-1

ls = []
for i in range(1,a+1): 
    p = 2*i-1
    ls.append((" "*((b-p)//2))+("*"*p))
for i in range(1,a):
    p = i
    ls.append((" "*p)+("*"*(b-2*p)))

for li in ls:
    print(li, end='\n')

이렇게 했더니 성공하고 마무리했다

 

320x100
728x90

'코딩 테스트 > Baekjoon' 카테고리의 다른 글

B1 10798. 세로읽기  (0) 2024.08.17
B3 2566. 최댓값  (0) 2024.08.17
B1 1157. 단어 공부  (0) 2024.07.18
B2 10809. 알파벳 찾기  (0) 2024.07.18
B2 10811번. 바구니 뒤집기  (0) 2024.07.15
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.