(BOJ2445 별 찍기 - 8
문제 설명
문제 풀이
Python
N = int(input())
output = ""
for i in range(1, N + 1):
output += "*" * i + " " * (N - i) + " " * (N - i) + "*" * i + "\n"
for i in range(N - 1, 0, -1):
output += "*" * i + " " * (N - i) + " " * (N - i) + "*" * i + "\n"
print(output)
Go
for i := 1; i <= N; i++ {
for j := 0; j < i; j++ {
wr.WriteByte('*')
}
for j := 0; j < N-i; j++ {
wr.WriteByte(' ')
}
for j := 0; j < N-i; j++ {
wr.WriteByte(' ')
}
for j := 0; j < i; j++ {
wr.WriteByte('*')
}
wr.WriteByte('\n')
}
- Go의 문자열은 immutable
- 아마 슬라이스나 배열에 저장하고 출력하는 방법을 썼으면 줄마다 출력하지 않아도 됬을 것 같다.
Node.js
for (let i = 1; i <= N; i++) {
for (let j = 0; j < i; j++) {
output += "*"
}
for (let j = 0; j < N - i; j++) {
output += " "
}
for (let j = 0; j < N - i; j++) {
output += " "
}
for (let j = 0; j < i; j++) {
output += "*"
}
output += "\n"
}
- Go와 유사하지만 문자열을 더해가며 마지막에 한번에 출력하는 방식으로 구현