이 페이지는 코딩도장 데이터의 읽기 전용 정적 보관본입니다.

ASCII Art N

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.

ascii-art

2015/05/15 18:04

vegan

86개의 풀이가 있습니다.


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)

2017/02/19 22:04

김구경

베리 베리 굳! - Taesoo Kim, 2018/06/08 15:52
리스트 내포에서 if ~else 를 쓰면 for이랑 순서가 바뀌어야 한다는 걸 처음알았습니다. - Jaeman Lee, 2021/08/12 17:22

Python 2.7

a = [' ']*input()
a[0] = 'N'
a[-1] = 'N'
print ''.join(a)
for i in range(1, len(a)):
    b = a[:]
    b[i] = 'N'
    print ''.join(b)

2015/08/06 18:08

최 재민

신선하네요^^ - 디디, 2016/03/23 17:06

Java

    public static void main(String[] args)
    {
        int num = Integer.parseInt(args[0]);

        for (int i=0;  i<num;  i++)
        {
            System.out.print("N");
            for (int j=1;  j<num-1;  j++)
            {
                if ( j == i && (i != 0 || i != (num-1)) )
                    System.out.print("N");
                else
                    System.out.print(" ");
            }
            if (num > 1)
                System.out.println("N");
        }
    }

2015/05/20 17:58

이 동훈

Python 3

def AAN(a):
    b = 0
    while b < a:
        b += 1
        if b == 1 or b == a:
            if a == 1:
                print('N')
            else:
                print('N' + ' ' * (a - 2) + 'N')
        else:
            print('N' + ' ' * (b - 2) + 'N' + ' ' * (a - b - 1) +'N')

2015/05/31 15:32

이끼소년

Common Lisp 공부 중인데 어렵네요. 재귀를 사용해서 구현해야할 것 같은 압박이 드네요.

(defconstant N #\N "character 'N'")
(defconstant SPACE #\  "character ' '")

;; 라인을 표현하는 문자 리스트 생성
(defun build-row (row size)
    (let ((list nil))
        (loop for x from 0 to (1- size) do
            (if (or
                    (eql row x)
                    (eql x 0)
                    (eql x (1- size))
                )
                (push N list)
                (push SPACE list)
            )
        )
        list
    )
)

;; 각 라인별 데이터를 리스트로 만듬
(defun build-letter-n (size)
    (let ((list))
        (dotimes (row size)
            (push (build-row row size) list)
        )
        list
    )
)

;; 라인별, 문자 항목을 화면에 표시
(defun print-letter-n (size)
    (mapcar
        (lambda (row-list)
            (dolist (value row-list)
                (princ value)
            )
            (fresh-line)
        )
        (build-letter-n size)
    )
)

2015/06/06 02:30

꽃샘더위

PHP

const FIRST = 1;
const N = "N";
const SPACE = " "; 

function print_line($current, $finish) {

    for($i = FIRST; $i <= $finish; $i++)
    {
        if($i <> $current && !($i == FIRST || $i == $finish)) echo " "; 
        else echo "N";
    }

    echo "\n";
}

function main($agrv)
{
    for($i = FIRST; $i <= $agrv; $i++)
    {
        print_line($i, $agrv);
    }
}

2015/06/10 17:09

Hyun Jung Lee

#include <stdio.h>
int main(){
    int a,i,j;
    scanf("%d",&a);
    for(i=0;i<a;i++)
    {
        for(j=0;j<a;j++)
        {
            if(j==0||j==a-1||i==j)
            {
                printf("N");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
}

2015/06/13 08:11

코딩호빵이

C언어로 간단하게 짜봤어요 ^^ - 코딩호빵이, 2015/08/22 16:22

VB.NET

    Sub Main()
        Dim size As Integer = CInt(Val(Console.ReadLine))

        For y As Integer = 1 To size
            For x As Integer = 1 To size
                Console.Write({"N", " "}(CInt((x = 1 Or x = size) Or x = y) + 1))
            Next
            Console.WriteLine()
        Next

        Console.ReadLine()
    End Sub

x축 처음과 끝, x 와 y가 같을경우 N을 출력했습니다.

2015/06/21 20:16

Steal

void exce86()
{
    int n;

    scanf_s("%d", &n);

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (j == 0 || j == (n - 1) || j == i)
                printf("N");
            else
                printf(" ");
        }
        printf("\n");
    }
}

C입니다.

2015/08/12 17:24

조서현

def sevendrawer(a):
    a = int(a)
    if (a % 2) == 0:
        print("Odd number is not acceptable!")
        exit()
    else:
        palette = []
        for iii in range(0, a):
            palette.append('x')
        for i in range(0, a):
            palette[0] = ('N')
            for ii in range(1, a-1):
                palette[ii] = (' ')
            palette[i] = ('N')
            palette[a-1] = ('N')
            print("".join(palette))

a = input()
sevendrawer(a)

join 함수로 리스트를 문자열로 변환할 수 있어서 일이 편해졌습니다.

2015/09/13 23:43

박재우

(defn ancii-art-n [n]
  (let [max-idx (dec n)
        r (range n)
        l-idxs (map vector r (repeat 0))
        m-idxs (map vector r r)
        r-idxs (map vector r (repeat max-idx))
        idxs (set (concat l-idxs m-idxs r-idxs))]
    (doseq [i r
            j r]
      (if (contains? idxs [i j])
        (print "N")
        (print " "))
      (when (= j max-idx)
        (println)))))

(ancii-art-n 1)
;>> N
;=> nil
(ancii-art-n 3)
;>> N N
;>> NNN
;>> N N
;=> nil
(ancii-art-n 5)
;>> N   N
;>> NN  N
;>> N N N
;>> N  NN
;>> N   N
;=> nil
(ancii-art-n 7)
;>> N     N
;>> NN    N
;>> N N   N
;>> N  N  N
;>> N   N N
;>> N    NN
;>> N     N
;=> nil

2015/10/02 01:32

김 은평

printN(5);
echo "<br>";
printN(7);

function printN($max) {
    for($i=0; $i<$max; $i++){
        for($j=0; $j<$max; $j++){
            if ($j == 0 || $j == ($max -1) || $j == $i) {
                echo "N";
            } else {
                echo "&nbsp; ";
            }
        }
        echo "<br>";
    }
}

2016/01/08 11:12

물빛미르

n = input("input an odd number:")

map = []

for i in range(n):
    map.append([])

for i in range(n):
    for k in range(n):
        map[i].append(" ")

def print_map():
    for i in range(n):
        print "".join(map[i])

for i in range(n):
    map[i][0] = "N"

for i in range(n):
    map[i][n-1] = "N"

for i in range(n):
    map[i][i] = "N"

print_map()

2016/01/18 14:17

취미로재미로

c언어 입니다~!

#include <stdio.h>

int main()
{
    int N = 7;
    int i, j;

    for(i=0; i<N; i++){
        for(j=0; j<N; j++){
            if(j == 0 || j == i || j == N-1) printf("N");
            else printf(" ");
        }
        printf("\n");
    }
    return 0;
}

//가로 줄(j)을 기준으로, 
//처음, 맨 마지막, 세로 i와 인덱스가 같을 경우 'N'을 출력하였습니다~

2016/01/19 13:37

이 정연

대각선 부분을 만들고, 첫줄과 마지막줄에서는 대각선부분이 없어야 하므로, 좌우 1글자씩 잘라냈습니다.

dd=input()
def printN(odd):
    N='N'
    S=' '
    for i in range(odd):
        ladder = S*i+N+S*(odd-i-1)
        print (N+ladder[1:-1]+N)[:odd]

printN(odd)

2016/01/21 15:18

상파

파이썬3.4입니다

def fnc(n):
    for i in range(n):
        for j in range(n):
            if j == 0 or j == i or j == n - 1: 
            #행과 열이 처음이거나, 같거나, 마지막일때
                print('N', end = '')
            else:
            #나머지는 공백으로 채운다
                print(' ', end = '')
        print() #하나의 행이 끝나면 줄바꿈한다
fnc(1)
fnc(3)
fnc(5)
fnc(7)

2016/03/23 17:29

디디

JAVA 입니다.

    public void drawAsciiN(int num){
        int matrix[][];
        if(num == 1 )
            System.out.println("N");
        else{
            matrix = new int[num][num];
            for(int i = 0 ; i < num ;i++){
                for(int j = 0 ;  j < num ;j++){
                    if(i == j || (j == 0 || j==num-1))
                        System.out.print("N");
                    else
                        System.out.print(" ");
                }
                System.out.println();
            }


        }
        System.out.println("");
    }

2016/04/16 17:39

xeo

Ruby

n.times {|i| a="N".rjust(i+1).ljust(n); a[0]=a[-1]="N"; puts a }

or

art = ->n=gets.to_i { (1..n).map {|i| a="N".rjust(i).ljust(n); a[0]=a[-1]="N"; a} }

Test

expect(art[1]).to eq ["N"]
expect(art[3]).to eq ["N N", "NNN", "N N"]
expect(art[5]).to eq ["N   N", "NN  N", "N N N", "N  NN", "N   N"]

2016/04/17 22:39

rk

N = 'N'; S= ' '

while __name__ == '__main__':
    l = int(input('>>>'))
    print('\n'.join(''.join(N if (y == x or y == 0 or y == l-1) else S for y in range(l)) for x in range(l)))

파이썬 3.5.1

import java.util.Scanner;
public class MyClass {
    public static void main(String []args){
        char S = ' ';
        char N = 'N';
        Scanner scan = new Scanner(System.in);
        int len = scan.nextInt();
        for(int i = 0; i<len; i++){
            for(int j = 0; j<len; j++){
                if ((i == j)||(j == 0)||(j == len-1)){
                    System.out.print(N);
                } else {
                    System.out.print(S);
                }
            }
            System.out.println();
        }
    }
}

자바

#include <iostream>
using namespace std;

int main(){
    char S = ' ';
    char N = 'N';
    int num;
    cin >> num;
    for(int i = 0; i<num; i++){
        for(int j = 0; j<num; j++){
            if ((j == i) || (j == 0) || (j == num-1)){
                cout << N;
            } else {
                cout << S;
                }
            }
        cout << endl;
    }
}

C++

2016/04/18 13:05

Flair Sizz

n*n 크기의 버퍼를 만들고 여기에 필요한 만큼의 문자 N을 넣는 식으로 처리해봤습니다. 이쪽이 더 맘에 드네요.

def do(n):
  buffer = [' '] * (n*n)
  buffer[0::n] = ['N'] * n    ## 왼쪽 세로선
  buffer[n-1::n] = ['N'] * n  ## 오른쪽 세로선
  buffer[n+1::n+1] = ['N'] * (n-1)  ## 대각선
  return '\n'.join(''.join(buffer[i*n:i*n+n]) for i in range(n))

def main():
  n = int(input()) // 2 * 2 + 1
  print(do(n))

대각선위치만 덧쓰는 방식입니다.

def do(n):
    if n == 1:
        return 'N'
    result = []
    for i in range(n):
        line = list('N' + ' ' * (n - 2) + 'N')
        line[i] ='N'
        result.append(''.join(line))
    return '\n'.join(result)

for i in range(4):
    print(2*i+1)
    print(do(2 * i + 1))
    print('')

2016/04/22 18:36

룰루랄라

Python 3.4.4

def ascii_art_n(number):
    for i in range(number):
        output = [ ' ' for _ in range(number) ]
        output[0] = 'N'
        output[-1] = 'N'
        output[i] = 'N'
        print(''.join(output))

ascii_art_n(1)
ascii_art_n(3)
ascii_art_n(5)

2016/05/23 10:09

SanghoSeo

def do(x):
    print('\n'.join(
        [('{0}' + ('{1:<' + str(x - 2) + '}{2}' if x > 2 else ''))
             .format('N'
                , ((' ' * (y - 1)) + 'N') if y > 0 and y < x - 1 else ''
                , 'N' if x > 1 else '') \
            for y in range(x)]))
do(1)
do(3)
do(5)
do(7)
do(9)
do(11)

Python 3.5.2에서 작성하였습니다.

2016/12/02 17:21

Yeo HyungGoo

$input  = 7;
for($i=1;$i<=$input;$i++){
    for($j=1;$j<=$input;$j++){
        echo ($j == $i) || ($j == 1) || ($j == $input) ? "N" : " ";
    }
    echo "\n";
}

2017/01/05 18:06

stardust

n = int(input())
arr = [[' ' for a in range(n)] for x in range(n)]

for x in range(n):
    arr[x][0] = 'N'
    arr[x][x] = 'N'
    arr[x][n-1] = 'N'
    print(''.join(arr[x]))

#### 2017.01.18 D-400 ####

2017/01/18 22:55

GunBang

import java.util.Scanner;

import static java.lang.System.in;

public class ASCIIArtN {

    public static void main(String[] args) {
        int n = new Scanner(in).nextInt();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (j == 0 || j == n - 1 || j == i) {
                    System.out.print("N");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println("");
        }
    }
}

2017/03/19 16:58

genius.choi

#include <iostream>
using namespace std;
int main()
{
    int oddnum, tonum, i = 0;
    cout << "enter the odd positive integer.\n";
    cin >> oddnum;
    char *Narr;
    Narr = (char*)malloc(oddnum);
    for(tonum = 1;tonum<=oddnum;tonum++)
    {
        for(i = 1;i<=oddnum;i++)
        {
            Narr[i] = 32;
        }
        Narr[1] = 78;
        Narr[oddnum] = 78;
        Narr[tonum] = 78;
        for(i = 1;i<=oddnum;i++)
        {
            cout << Narr[i];
            if(i==oddnum)
            {
                cout << "\n";
            }
        }
    }
}

맥주 한캔 먹고 작성한거라 좀 엉망이네요;

2017/05/21 20:02

S ReolSt

python 3.4 (1) 양끝에 N + 각 줄에 절반+1 까지만 차례로 N 을 채우고 그 줄을 처음에, 끝에는 reversed로 채운후 안쪽으로 해나가면 됩니다.

def draw_N(n):
    ceil_half = int(n/2)+1
    pattern = [""]*n

    for i in range(ceil_half):
        temp = [' ']*n
        temp[0],temp[-1],temp[i] = 'N'*3
        pattern[i], pattern[-i-1] = temp, list(reversed(temp))

    for x in pattern:
        print("".join(x))

(2) 1부터 len(temp)-1까지 돌리기

def draw_N(n):
    temp = [' ']*n
    temp[0], temp[-1] = 'N'*2

    print(''.join(temp))

    for i in range(1, len(temp)-1):
        pattern = temp[:]
        pattern[i] = 'N'
        print(''.join(pattern))

    print(''.join(temp))

2017/05/31 06:02

예강효빠

var asciiartn = function(n) {
    console.log(Array.from(Array(n), (_, r) => Array.from(Array(n), (_, c) => (c === r || c === 0 || c === n - 1) ? "N" : " ").join("")).join("\n"));
};

asciiartn(1);
asciiartn(3);
asciiartn(5);
asciiartn(7);

2017/06/18 03:40

funnystyle

// N - C
#include <stdio.h>
int main(void)
{
    int n, i, j;
    printf("what size do you want? : ");
    do
    {
    scanf("%d", &n);
    } while (n % 2 == 0);
    for (i = 0; i < n; i++)
    {
        printf("N");
        for (j = 1; j < n - 1; j++)
            if (j == i)
                printf("N");
            else
                printf(" ");
        if (n != 1)
            printf("N");
        printf("\n");
    }
}

2017/06/27 22:38

Jeong Hoon Lee

C# 2차원 배열 사용

using System;

class Program
{    
     static void Main(string[] args)
    {
        int N = 0;
        try
        {
            Console.Write("N = ");
            string s = Console.ReadLine();
            N = int.Parse(s);   // 여기서 int N 하면 try{} 밖에서 못 씀
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }

        char[,] arr = new char[N, N];         // Rectangular array. [][]는 가변길이배열
        Array.Clear(arr, 0, arr.Length);    // 배열초기화(배열명, 시작idx, 길이)
        for (int i = 0; i <  N; i++)
        {
            arr[i, 0] = arr[i, N - 1] = arr[i,i] = 'N';
        }

        for (int i = 0; i < N; i++)
        {
            for(int j = 0; j < N; j++)
            {
                Console.Write(arr[i,j]);
            }
            Console.WriteLine();
        }
    }
}

Python

N = int(input('N = '))
for i in range(0, N):    
    print('N' + 
          ' ' *  (i-1) + 
          ('N' if 0 < i and i < N-1 else '') + 
          ' ' * (N-2-i) + 
          'N');

2017/07/15 22:02

Noname

Python 3으로 풀었습니다.

def print_art_n(n):
    basic = ''.join(['N' if _ == 0 or _ == n-1 else ' ' for _ in range(n)])
    for i in range(n):
        print(basic[:i] + 'N' + basic[i+1:])

2017/07/21 12:55

SOUP


public class Calculate {

    public static void main(String[] args) {
        int num = 11;

        for(int i=0 ; i<num ; i++){
            for(int j=0 ; j<num ; j++){
                if(j==0 || j==num-1 || i==j) System.out.print("N"); 
                else                         System.out.print(" ");
            }
            System.out.println();
        }
    }
}

2017/08/28 14:55

SH

# python 3.6
n = int(input())
string = [["N" if x == 0 or x == (
    n - 1) else " " for x in range(n)] for y in range(n)]
for i in range(n):
    string[i][i] = "N"
string = "\n".join(["".join(lst) for lst in string])
print(string)

2017/09/09 10:50

mohenjo

public class Example86 {

    public static void main(String[] args) {
        Example86 ex = new Example86();
        ex.outputPrint(7);
    }

    private void outputPrint(int n) {
        for (int i = 0; i < n; i++) {
            System.out.print("N");
            for (int j = 1; j < n - 1; j++) {
                if (i == j) {
                    System.out.print("N");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.print("N");
            System.out.println();
        }
    }
}

2017/09/11 22:47

흑돼지

java로 짜 봤습니다.

import java.util.Scanner;

public class ASCIIArtN {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("N의 갯수를 입력하세요.?");

        int a;
        a = sc.nextInt();

        for (int i = 1; i <= a; i++)
        {
            for (int j = 1; j <= a; j++)
            {
                if (i == j || j == 1 || j == a)
                    System.out.print("N");
                else
                    System.out.print(" ");
            }
            System.out.println();
        }
    }
}

2017/09/12 08:28

박성규

import numpy as np

while True:
    n=int(input())
    if n%2: break

step=np.eye(n)
for i in range(n):
    step[i][0]=step[i][-1]=1

step=list(map(list, step))
for i in range(n):
    step[i]=''.join(list(map(str,(map(int, step[i]))))).replace('1','N').replace('0',' ')
step='\n'.join(step)

print(step)

2017/12/17 17:43

빗나감

파이썬 3.6

def asciiArtN(n):
    if n == 1:
        print('N')
    if n % 2 == 1:
        for i in range(n):
            if i == 0 or i == n-1:
                print("N"+' '*(n-2)+"N")
            else:
                print("N"+' '*(i-1)+"N"+' '*((n-1)-(i+1))+"N")

if __name__ == "__main__":
    n = int(input("양의 정수 중 홀수를 입력하세요: "))
    asciiArtN(n)
  • 결과값
양의 정수 홀수를 입력하세요: 3
N N
NNN
N N

양의 정수 홀수를 입력하세요: 9
N       N
NN      N
N N     N
N  N    N
N   N   N
N    N  N
N     N N
N      NN
N       N

2018/01/15 12:18

justbegin

def art(n):
    if n%2!=1:
        print('not valid')
    if n==1:print('N')    
    else:
        print('N'+' '*(n-2)+'N')
        for i in range(0,n-2):
            print('N'+' '*i+'N'+' '*((n-3)-i)+'N')   
        print('N'+' '*(n-2)+'N')          

2018/01/16 19:18

강상욱

# 파이썬


def art_n(i):
    print("N" + " "*(i-2) + "N")
    for m in range(1, i-1):
        print("N" + " "*(m-1) + "N" + " "*(i-2-m) + "N")
    print("N" + " "*(i-2) + "N")


art_n(3)
art_n(5)
art_n(7)
art_n(9)
art_n(11)

2018/01/30 19:31

olclocr

def artn(n):
    if n != 1:
        print("N"+" "*(n-2)+"N")
        for i in range(n-2):
            print("N"+" "*i+"N"+" "*(n-3-i)+"N")
        print("N"+" "*(n-2)+"N")
    else:
        print("N")


artn(int(input()))

2018/02/12 22:17

김동하

N=int(input("홀수인 양의 정수를 입력하세요:"))


if N==1:
    print("N")
    exit()
array=[[0]*N for k in range(N)]
for k in range(1,N-1):
    array[k][k]="N"
for g in range(N):
    array[g][0]="N"
for b in range(N):
    array[b][N-1]="N"


for a in range(N):
    ans=''
    for character in array[a]:
        if character==0:
            ans+=' '
            continue
        ans+=str(character)
    print(ans)



2018/02/23 06:37

D B

def nart(n):
    if n == 1:
        return 'N'
    else:
        result = ['N' + ' '*(n - 2) + 'N']
        for i in range(1, n - 1):
            result.append(result[0][:i] + 'N' + result[0][i + 1:])
        result.append(result[0])
        final = ''
        for a in result:
            final = final + a + '\n'
        return final

Python 3

2018/03/29 19:17

myyh2357

n = int(input("number: "))
for i in range(n):
    arr = [' '] * n
    arr[0], arr[n-1], arr[i] = 'N','N','N'
    print("".join(arr))

2018/04/05 02:20

정익수

파이썬으로 작성했습니다.

n=int(input(''))

for p in range(n):
    for q in range(n):
        if q==0 or q==n-1: print('N',end='')
        elif p>0 and p<n-1:
            if p==q: print('N',end='')
            else: print(' ',end='')
        else: print(' ',end='')
    print('')

2018/04/15 18:40

박종범

def ascii():
    num = int(input("insert the odd integer : "))
    while num % 2 == 0 :
        num = int(input("insert the odd integer again : "))
    res = ["N"+" " * (num-2) +"N"]
    for i in range(num -2):
        res.append(" ")
    res.append("N"+" " * (num-2) +"N")
    for i in range(1,num-1):
        res[i] = "N" + " " * (i-1) + "N" + " " * (num-2-i) + "N"

    return "\n".join(res)

print(ascii())

2018/04/23 17:04

yijeong

user_input = int(input())

# 맨위와 아래를 제외하고 N이 순차적으로 2개씩

height = user_input
gangyuk = height - 2

#first
print("N",'N',sep = ' ' * gangyuk)
# middle

idx = 1
while True:
    word = "N{}N".format(' ' *gangyuk)
    lst = list(word) # N, , ,N
    del lst[idx]
    lst.insert(idx,'N')
    print(''.join(lst))
    idx += 1
    if idx == len(word) -1 :
        break

#final
print("N",'N',sep = ' ' * gangyuk)



2018/05/07 12:52

최우성

ublic class test{

    public static void main(String[] args) {
        int num = 11;

        for(int i=0 ; i<num ; i++){
            for(int j=0 ; j<num ; j++){
                if(j==0 || j==num-1 || i==j) System.out.print("N"); 
                else                         System.out.print(" ");
            }
            System.out.println();
        }
    }
}

2018/06/04 12:24

聂金鹏

while 1:
    n = int(input('N: '))
    if n<0 or not n%2: print('홀수가 아닙니다. 다시 입력해 주세요.')
    else: break

art = ['N'*n for i in range(n)]

for i in range(n):
    art[i] = ''.join(['N' if j == 0 or j == i or j == n-1 else ' ' for j in range(n)])

for i in range(n):
    print(art[i])

2018/07/02 06:49

Creator

파이썬!


n = 7

for m in range(n):
    print('N' + ' '*(m-1)+ 'N' +  ' '*(n-m-2) + 'N') if not (m == 0 or m == n-1) else print('N' + ' '*(n-2) + 'N')

2018/07/10 23:24

재즐보프

a = [' ']*int(input('입력'))
a[0] ='N'
a[-1] ='N'
print(''.join(a))
for i in range(1,len(a)):
    b=a[:]
    b[i] ='N'
    print(''.join(b))


2018/08/25 13:39

S.H

#include<iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            if(0 == j || n - 1 == j || i == j)
            {
                cout << 'N';
            }
            else
            {
                cout << ' ';
            }
        }
        cout << endl;
    }
}

2018/08/25 22:55

*IDLE*

import java.util.Scanner;

public class KimSanghyeop {

    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);

        System.out.print("라인 수를 입력하세요 : ");
        int num = sc.nextInt();

        for(int y1=0;y1<num;y1++)
        {
            for(int x1=0; x1<num;x1++)
            {
                if(x1==0 || x1==num-1 || x1==y1)
                {
                    System.out.print("N");
                }
                else
                {
                    System.out.print(" ");
                }
            }
            System.out.println("");
        }
    }
}

2019/01/09 21:41

김상협

조금 다른 N으로 풀었습니다.

def N(n):
    if n == 1:
        print('N')
    else:
        for x in range(n):
            print('N'+' '*x + 'N'+' '*(n-x-1) + 'N')

2019/01/23 13:47

김영성

n = int(input())

def art_N(n):
    for i in range(n):
        for j in range(n):
            if i == j:
                print('N', end='')
            elif j == 0 or j == n-1:
                print('N', end='')
            else:
                print(' ', end='')
        print()
    return

art_N(n)

2019/02/04 15:16

D.H.

오늘도 파이썬 코드 많이 배워갑니다 :)

input_number = int(input())

for i in range(input_number):
    for j in range(input_number):
        if (j == 0) or (j == input_number-1):
            print("N", end='')
        elif (j > 0) and (j < input_number-1):
            if i == j:
                print("N", end='')
            else:
                print(" ", end='')
    print()


2019/02/05 21:30

ChungGeol You

namespace codingdojang__
{
    class Program
    {
        static void Main(string[] args)
        {
            Ascii_art(7);
        }
        static void Ascii_art(int input)
        {
            for (int i = 0; i < input; i++)
            {
                Console.SetCursorPosition(0, i);
                Console.WriteLine("N");
            }
            for (int i = 1; i < input - 1; i++)
            {
                Console.SetCursorPosition(i, i);
                Console.WriteLine("N");
            }
            for (int i = 0; i < input; i++)
            {
                Console.SetCursorPosition(input - 1, i);
                Console.WriteLine("N");
            }
            Console.WriteLine();
        }
    }
}

2019/02/28 15:05

bat

while True:
    number=int(input("Input an odd number: "))
    if number==1:
        print("N")
    else:
        print("N"+" "*(number-2)+"N")
        for i in range(number-2):
            print("N"+" "*i+"N"+" "*(number-3-i)+"N")
        print("N"+" "*(number-2)+"N")

2019/03/12 22:27

ykleeac

def Ascii_art(n):
  assert n % 2 == 1, 'input odd number'
  l = [' '] * n
  for i in range(n):
    l[0] = 'N'
    l[-1] = 'N'
    if (i >= 0 and i <= n-2):
      l[i] = 'N'

    print("".join(l))
    l[i] = ' '

2019/03/13 22:08

Gerrad kim

n=int(input());ans='N'+' '*(n-2)+'N\n'
if n==1:
    print('N')

else:

    for i in range(n-1):
        if i==n-2:
            ans+='N'+' '*i+'N'+' '*(n-i-3)
        else:
            ans+='N'+' '*i+'N'+' '*(n-i-3)+'N\n'

    print(ans)

2019/05/07 18:50

암살자까마귀

def draw_N(n):
    s = 'N' + ' ' * (n-2) + 'N'
    for i in range(n):
        print(s[:i] + ['','N'][n>1] + s[i+1:])

2019/05/12 16:15

messi

N = int(input('Enter odd number : '))
if N == 1 : print('N')
else :
    print('N' + ' ' * (N-2) + 'N')
    for x in range(N-2) :
        print('N' + ' '*x + 'N' + ' '*(N-3-x) + 'N')
    print('N' + ' ' * (N-2) + 'N')

2019/07/04 22:24

조현우

n=int(input("정수 입력: "))
g=list(" "*(n-2))
a=""
for i in g:
    a=a+i
u=a
b="N"+a+"N"
j=0
print(b)
while j<n-2:
     a=""
     g[j]='N'
     for i in g:
         a=a+i
     b="N"+a+"N"
     print(b)
     g[j]=' '
     j +=1
b="N"+u+"N"
print(b)

2019/08/28 00:22

박재욱

import java.util.*;
public class ASCIIArtN {

    public static void main(String[] args) {

        int input = (new Scanner(System.in).nextInt());
        StringBuffer Ns = new StringBuffer();
        if(input==1) {
            System.out.println("N");
        }
        else {
        for(int j=0; j<input; j++) {
            for(int i=0; i<input; i++) {
                if(i==0||i==input-1) {
                    Ns.append("N");
                }
                else if(i==j) {
                    Ns.append("N");
                }
                else {
                    Ns.append(" ");
                }
            }
            System.out.println(Ns);
            Ns.delete(0, input);
        }
    }
    }
}

2019/11/24 21:43

big Ko

k = int(input("INPUT : "))
s = [print('N'+(' '*i+'N').ljust(k)[1:-1]+'N') for i in range(0, k)]

한 줄로 해보고싶었는데, 쉽지가 않네요. 결과

INPUT : 5
N   N
NN  N
N N N
N  NN
N   N

2020/01/07 10:07

GG


num = int(input("행수 입력(홀수) : "))

if num % 2 == 1:
    if num == 1:
        print("N")
    else :
        print("N"+" "*(num-2)+"N")
        for i in range(0,num-2) :
            print("N"+" "*i+"N"+" "*(num-i-3)+"N")
        print("N"+" "*(num-2)+"N")
else :
    print("짝수로 입력하세요.")

2020/01/14 23:19

semipooh

on=input("홀수를 입력하십시오: ")
if int(on)%2==0:
    print("잘못된 입력입니다. 짝수를 입력했습니다.")
else:
    lst=["N"]
    for i in range(int(on)-1):
        lst.append(" ")
    lst[-1]="N"
    for i in range(int(on)):
        nlst=lst[:]
        nlst[i]="N"
        print("".join(nlst))

2020/01/20 16:32

박시원

def ascii(num):
    for i in range(1, num+1):
        print(''.join(['N' if (n == i) or (n == 1) or (n == num) else ' ' for n in range(1, num+1)]))

def main():
    ascii(num=7)

if __name__ == '__main__':
    main()

2020/05/02 21:31

Hwaseong Nam

a = [' ']*int(input())
a[0],a[-1] = 'N','N'
print(str(a))
for i in range(1,len(a)-1):
    b = a[:]
    b[i] = 'N'
    print(str(b))
print(str(a))

``````{.python}
a = [' ']*int(input(n))
a[0],a[-1] = 'N','N'
print(''.join(a))
for i in range(1,len(a)-1):
    b = a[:]
    b[i] = 'N'
    print(''.join(b))
print(''.join(a))

처음껄 먼저 생각해냈는데 풀이들을 보니 더 깔끔하게 출력하는 방법이 있었네용 ㅎㅎ

2020/05/14 00:31

Money_Coding

Go 1.14.4

package main

import (
    "fmt"
)

func Printn(n int) {
    // 처음과 마지막 글자는 항상 출력
    for line := 0; line < n; line++ {
        for column := 0; column < n; column++ {
            if column == 0 || column == n - 1 || line == column {
                fmt.Print("N")
            } else {
                fmt.Print(" ")
            }
        }
        fmt.Print("\n")
    }
}

func main() {
    var n int

    fmt.Print("Input number: ")
    fmt.Scanf("%d", &n)

    Printn(n)
}

2020/07/28 17:44

구루마

Python 3.8

(lambda n: print('\n'.join([''.join(['N' if column in (0, n - 1, row) else ' ' for column in range(n)]) for row in range(n)])))(int(input("숫자를 입력하세요: ")))

2020/07/28 17:57

구루마

n=int(input("Enter a number: "))

def ASC2(n):
    for i in range(n-2):
        print("N"+i*"  "+"N"+(n-3-i)*"  "+"N")

def last(n):
    if n==1:
        print('N')
    else:
        print("N"+(n-2)*'  '+' N')
        ASC2(n)
        print("N"+(n-2)*'  '+' N')

last(n)

2020/07/29 02:33

김병관

def ASCII_ART_N(numbers):

  bottom=0

  top=numbers-1

  for i in range(bottom,top+1,1):

    for j in range(bottom,top+1,1):

      if j==top or j==bottom or j==i:

        print("N",end="")

      else:

        print(" ",end="")

    print("")

ASCII_ART_N(1)

ASCII_ART_N(3)

ASCII_ART_N(5)

ASCII_ART_N(7)

2021/01/02 15:55

전준혁

def asciart(n):
    result = []
    for i in range(n):
        for j in range(n):
            result.append(' ')
        for k in range(n):
            result[0] = 'N' 
            result[-1] = 'N'
            result[i] = 'N'
        print(''.join(result))
        result = []

asciart(7)

2021/02/16 08:54

DSHIN

n = int(input('Input Number: '))

for i in range(1, n+1):
    for j in range(1, n+1):
        if i == j or j == 1 or j == n:
            print('N', sep='', end='')
        else:
            print(' ', sep='', end='')
    print()

2021/02/22 22:11

Ha

n = int(input("홀수인 양수만 입력하세요 : "))
i = 0
while i<n:
    if n==1:
        print('N')
    elif i==1:
        print('N', end='')
        print('N', end=' '*(n-i-2))
        print('N')
    elif 1<i<(n-1):
        print('N', end=' '*(i-1))
        print('N', end=' '*(n-i-2))
        print('N')
    else:
        print('N',end=' '*(n-2))
        print('N')
    i+=1

join 함수 쓸생각을 못했네..

2021/03/12 21:20

fox.j

import java.util.Scanner;

public class question {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("홀수를 입력해주세요: ");
        int input = sc.nextInt();


        for (int i = 0; i < input; i++) { // 0 1 2 3 4
            for (int j = 0; j < input; j++) { // 0 1 2 3 4
                if (j == 0 || j == input-1) {
                    System.out.print("*");
                } else if (i == j) {
                    System.out.print("*");
                } else {
                    System.out.print("_");
                }
            }
            System.out.println("");
        }
    }
}

2021/05/24 14:03

박준영

java

import java.util.Scanner;

public class CreateN {
    public static void main(String[] args) {
        System.out.println("숫자 대입했을 때 N만들기");
        Scanner sc = new Scanner(System.in);
        System.out.println("숫자를 입력해주세요. _ ");
        int code = sc.nextInt();
        if(code % 2 == 0) {
            code++;
        }
        for (int i = 0; i < code; i++) {
            for (int j = 0; j < code; j++) {
                if(i == j || j == 0 || j == code - 1) {
                    System.out.print("N");
                }else {
                    System.out.print(" ");
                }
            }
            System.out.println("");
        }
        sc.close();
    }
}

2021/05/26 12:05

A-assasin Kr

def naver(n) :
    for i in range(n):
        rep=''
        if 0<i<n-1 :
            rep +=' '*(i-1)
            rep +='N'
            rep +=' '*((n-2)-i)
        else : rep += ' '*(n-2)

        print(f'N{rep}N')

2021/05/31 15:50

약사의혼자말

def Nmaker(n):
    for i in range(n):
        print(''.join(["N" if j in [0,i,n-1] else " " for j in range(n)]))
Nmaker(7)

추천 답안을 보고 배워갑니다! 

2021/07/06 13:28

ss2663

#codingdojing_artN

N = eval(input('N: '))

for i in range(N):
    for j in range(N):
        if j == 0:
            print('N', end = '')
        elif j == i:
            print('N', end = '')
        elif j == (N-1):
            print('N')
        else:
            print(' ', end = '')


2021/08/12 15:15

Jaeman Lee

def ASCLL_Art_N(a):
    for i in range(a):
        for c in range(a):
            if c == 0 or c == i or c == a-1:
                print('N',end = '')
            else:
                print(' ', end = '')
        print()
if __name__ == '__main__':
    a = int(input())
    ASCLL_Art_N(a)

2021/10/19 19:46

서현준


while True:
    a= int(input("홀수를 입력 하시오"))
    if a%2 ==1:
        break
def N_make(a):
    for j in range(a):
        if (j == 0 or j==a-1) and a>1:
            k=0
        else:
            k=1
        print('{0}{1}{2}{3}{0}'.format("N"*(a>1)," "*(j-1),"N"*k," "*(a-j-2)))

N_make(1)
N_make(3)

"N"*(a>1) 에서 boolean 을 이용해봤습니다

2021/12/31 02:56

양캠부부

_odd = int(input())
_N = "N"
_S = " "

for i in range(0,_odd):
    for j in range(0,_odd):
        if j == 0 or j == (_odd-1) : print(_N, end='')
        elif i == j : print(_N, end='')
        else : print(_S, end='')
    print("")

2022/02/03 15:47

강태호

n=7
for i in range(n):
    print(''.join([' ','N'][x==0 or x==i or x==n-1] for x in range(n)))

2022/02/14 16:29

로만가

def N(input):
    list = ['N','N']

    if input == 1:
        return print('N')

    while len(list) != input:
        list.insert(1,' ')

    for i in range(input):
        list_1 = list[:]
        list_1[i] = 'N'
        print(''.join(list_1))

2022/06/22 16:50

김시영

python 3.10입니다. 입력이 1인 경우는 따로 분류하고, 나머지 경우는 식을 세워 풀었습니다. 다음은 소스 코드입니다.

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

다음은 실행 결과입니다.

1
N

7
N     N
NN    N
N N   N
N  N  N
N   N N
N    NN
N     N

2022/07/18 20:58

이준우

목록으로