[Python] 코딩 도장 - ASCII Art N
Updated:
코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.
코딩 도장에서 여러 문제를 확인할 수 있습니다.
난이도 순으로 차근차근 풀어보려 합니다.
[문제: ASCII Art N] - Lv.2
Write a program that lets the user enter in an odd positive integer (you may assume the input is always valid), and prints out an ASCII art letter N made using the character N.
If the input is 1, the output is:
N
If the input is 3, the output is:
N N
NNN
N N
If the input is 5, the output is:
N N
NN N
N N N
N NN
N N
If the input is 7, the output is:
N N
NN N
N N N
N N N
N N N
N NN
N N
The pattern continues on like this. The output may contain trailing spaces.
출처: https://codingdojang.com/scode/480?answer_mode=hide
[풀이]
def ASCII_Art_N(n):
for i in range(n):
a = [" "]*n
a[0]="N" ; a[-1]="N" ; a[i] = "N"
print("".join(a))
ASCII_Art_N(1)
ASCII_Art_N(3)
N N
NNN
N N
ASCII_Art_N(5)
N N
NN N
N N N
N NN
N N
ASCII_Art_N(7)
N N
NN N
N N N
N N N
N N N
N NN
N N
우선 입력한 n 길이의 공백 값을 가지는 리스트를 만들어 양쪽 끝을 N으로 변환한다.
그 후 첫 번째 부터 N으로 변환해 출력하는 방식을 사용하였다.
N이 1인 경우도 같은 로직으로 출력이 가능하다.
[추천 풀이]
def NN(n):
for i in range(n):
print(''.join(["N" if j in [0,i,n-1] else " " for j in range(n)]))
NN(5)
N N
NN N
N N N
N NN
N N
이 분도 리스트를 join()
해서 출력하는 방식은 동일하지만 리스트 생성 방법에 if 문을 사용하였다.
Leave a comment