Python/코딩테스트
[백준] 2444번 : 별 찍기 - 7
edoyyoy
2023. 4. 19. 11:04
난이도 : 브론즈 3
정답률 : 66.792%

n = int(input())
a = [[0]*( (2*n)-1) for _ in range((2*n)-1)]
s = e = ((2*n)-1)//2
for i in range((2*n)-1):
for j in range(s, e+1):
a[i][j] = 1
if i < ((2*n)-1)//2:
s -= 1
e += 1
else:
s += 1
e -= 1
for i in range((2*n)-1):
for j in range((2*n)-1):
if a[i][j] == 0:
print(' ', end='')
else:
print('*', end='')
print()
▶ 처음에는 배열로 만들어 전체의 그림을 그렸으나 제출 결과에서 출력 형식이 틀렸다고 나왔다.
틀린 이유를 몰라서 검색해본 결과, 띄어쓰기까지 출력이 맞아야 한다고 한다.
백준에 있는 출력 결과를 드래그 해보니 * 이후에는 띄어쓰기가 없음을 보고 다시 코드를 짰다.

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
▶ 아까와 접근 방식은 비슷하지만, *이 마지막으로 찍히는 지점에서는 다음으로 넘어가게 하여 문제를 풀 수 있었다.
현생에 치여 블로그가 되게 오랜만이다. 소소하게 문제 풀고있는거라도 기록해놔야겠다!