728x90
반응형

백준 10991번에 이은 10992번 별 찍기 문제입니다. 

백준 별 찍기 문제 쉽게 봤다가 아주 호되게 당하는 기분이 드네요...;;

https://www.acmicpc.net/problem/10992

 

10992번: 별 찍기 - 17

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

문제요약) 아래와 같이 되는 규칙찾기!

정답) 

num = int(input())
for i in range(1,num+1):
    if i == num:
        print("*"*(num*2-1))
    elif i == 1:
        print(" "*(num-i),"*",sep="")
    else:
        print(" "*(num-i),"*"," "*(2*i-3),"*",sep="")

첫번째 줄(i가 1일때)

마지막 줄(i가 num일 때)

나머지 (else)

이렇게 3가지로 나누어서 문제를 해결했습니다. 

여기서 저 sep옵션을 꼭 넣어야 되나 라고 생각이 드시지 않나요?

그래서 한번 빼고 출력을 해봤습니다. 

num = int(input())
for i in range(1,num+1):
    if i == num:
        print("*"*(num*2-1))
    elif i == 1:
        print(" "*(num-i),"*")
    else:
        print(" "*(num-i),"*"," "*(2*i-3),"*")

결과)

어떤 변화인지 더 명확하게 보여드리겠습니다!

정답코드에서 sep=""를 sep="^"로 바꿔보았어요.

print(" "*(num-i),"*"," "*(2*i-3),"*",sep="") 

저번 글에서 sep옵션은 문자열 중간중간에 삽입할 문자를 지정해주고, 개행이 되는 옵션이라고 말씀드렸는데요.

결론적으로 말씀을 드리면 sep=""를 추가하지 않으면

자동으로 쉼표로 이어진 문자열 사이에 띄어쓰기가 된다는 것을 알 수 있었습니다. 

따라서 이를 알고, 구현문제를 풀 때, sep옵션을 활용해야겠다는 생각이 드네요!

 

도움이 되셨다면 공감과 댓글 그리고 구독을 부탁드립니다.!!

 

+10991번 풀이도 같이 보면 좋아요!

2022.01.22 - [알고리즘 TIL] - [파이썬python] 백준 10991번 - end옵션

 

[파이썬python] 백준 10991번 - end옵션

백준 10991번을 풀면서 end 와 sep옵션에 대해서 알아보겠습니다. https://www.acmicpc.net/problem/10991 10991번: 별 찍기 - 16 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 문제요약)..

coarmok.tistory.com

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기