boj-2447(星図)
久しぶりに解決した問題...コードがうまく動いていて、少しも問題がないように見えますが、それは何ですか.いつもタイムアウトだったので諦めてまた中に入ってPpyが回っていないことを確認したのでしょうか?
だから前にタイムアウトしたコードを直接pypyに回すと打たれましたははは
本当に无言です.タイムアウトしたらpypyに移動...
ちょっとグレードの問題だったので、かなり悩んでしまいました.
分類ごとに再帰関数で解決しようと思って悩んだ.
以前解いたときに最後に書いたコードも突然現れました!でもクレイジーすぎてコードを説明できない以前のコードと最後に通過したコードを分けて開きます.両方確認しておけばよかったです.
古いコード
だから前にタイムアウトしたコードを直接pypyに回すと打たれましたははは
本当に无言です.タイムアウトしたらpypyに移動...
ちょっとグレードの問題だったので、かなり悩んでしまいました.
分類ごとに再帰関数で解決しようと思って悩んだ.
以前解いたときに最後に書いたコードも突然現れました!でもクレイジーすぎてコードを説明できない以前のコードと最後に通過したコードを分けて開きます.両方確認しておけばよかったです.
古いコード
import sys
n = int(input())
a = [['*'] * n for i in range(n)]
def star_print(n, list, origin_size):
origin = origin_size
if n < 3:
return list
for i in range(origin):
for j in range(origin):
if j // (n // 3) == 1 and i // (n // 3) == 1: # n = 27 / n // 3 = 9 -> n = 9 / n // 3 = 3
for t in range(origin):
for p in range(origin):
if i + n*t < origin and j + n*p < origin:
list[i + n*t][j + n*p] = " "
return star_print(n // 3, list, origin)
pr = star_print(n, a, n)
for i in range(len(pr)):
for j in range(len(pr[0])):
sys.stdout.write(pr[i][j])
sys.stdout.write("\n")
パスコードimport sys
def print_star(star, N, origin_size):
if N < 3:
return star
else:
for i in range(origin_size):
for j in range(origin_size):
if (i // (N//3)) % 3 == 1 and (j // (N//3)) % 3 == 1:
star[i][j] = ' '
return print_star(star, N//3, origin_size)
N = int(input())
star_list = [['*'] * N for i in range(N)]
star = print_star(star_list, N, N)
for i in range(N):
for j in range(N):
sys.stdout.write(star[i][j])
sys.stdout.write("\n")
最後のコードを編んだとき、誰かが後ろでナイフを刺したように、突然コードを修正しましたが、コードがよく回っていて、不思議でした.確かにコードがずいぶん短くなって、よく動いて面白い問題です.Reference
この問題について(boj-2447(星図)), 我々は、より多くの情報をここで見つけました https://velog.io/@dbsrlskfdk/boj-2447별-찍기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol