그리드 ASCII 아트 코드 골프


19

도전

요구 사항을 충족하는 가장 짧은 프로그램을 만듭니다.

요구 사항

  1. 코드는 다음과 같이 0의 5x5 그리드를 생성해야합니다.

    00000
    00000
    00000
    00000
    00000
    
  2. 코드는 입력 (열, 행, 문자)을 허용해야합니다. 그리드는 그에 따라 변경되어야합니다.

    스타트:

    00000
    00000
    00000
    00000
    00000
    

    입력:

    (2,5,*)
    

    산출:

    0*000
    00000
    00000
    00000
    00000
    

    (참고 : 왼쪽 아래 모서리는 1,1 위치입니다.)

  3. 행 / 열 입력이 (가 그리드 아니다만큼)이 사용자가 선택한 모든 메시지가 될 수 1,2,3,4 또는 5가 아닌 경우이 프로그램은 그래서, 그리드 이외의 오류 메시지를 반환해야한다 0입니다 허용되는 오류 출력

  4. 프로그램은 인쇄 가능한 모든 ASCII 문자 (미국 키보드)와 함께 작동해야합니다.

승자

승자는 코드가 가장 짧고 모든 요구 사항을 충족하는 사람이됩니다. 둘 이상의 답변이 효과가 있고 동일한 (가장 짧은) 길이를 가진 경우, 먼저 답변 한 사람이 승자가됩니다.


8
프로그램은 오류 메시지를 반환해야합니다 . 어떤 오류 메시지가 있습니까? 프로그램 0이 오류를 반환 하고 그리드를 성공으로 되돌릴 수 있습니까 ?
Rod

1
행렬의 원점은 어디에 있습니까? 인덱스가 0 또는 1이어야합니까?
george

3
그건 그렇고 PPCG에 오신 것을 환영합니다.
Outgolfer Erik

4
프로그램은 미국 키보드의 모든 문자와 작동해야합니다. 왜 ASCII가 아닌가? 나는 미국 키보드의 문자조차 모른다. 그리고 그것은 도전에 아무것도 추가하지 않는다
Luis Mendo

1
@LuisMendo 미국 키보드는 ASCII이거나 적어도 하위 집합이라고 생각합니다.
Conor O'Brien

답변:


11

Dyalog APL , 17 13 10 바이트

(행, 열) 및 문자를 포함하는 닫힌 배열을 프롬프트합니다. 잘못된 입력에 INDEX ERROR가 발생합니다.

⊖⍞@⎕⊢5 50

온라인으로 사용해보십시오!

 거꾸로 뒤집다

 입력 된 문자

@ 대체 콘텐츠 총수

 평가 된 입력 (닫힌 행, 열)

 의

5 5⍴ 5 × 5 배열

0 제로


필요? 이 경우에는 중복이라고 생각합니다.
Conor O'Brien

1
@ ConorO'Brien @ ConorO'Brien이 구문이 없으면 파서는 (⊂⎕)5 5단일 3 요소 배열 (인수에 대한 인수)로 간주 됩니다 .
Adám

그것은 13 바이트가 아닌 13 개의 유니 코드 문자입니까?
wilx 2016

1
@wilx 단어 바이트를 클릭하십시오 !
Adám

이 답변이 승자입니다.
Dave Jones

5

루비, 157 149 바이트

g=(1..5).map{[0]*5}
loop{puts g.map(&:join).join ?\n
x=gets.match /\((.),(.),(.)\)/
a,b=x[1].hex,x[2].hex
1/0 if a<1||a>5||b<1||b>5
g[5-b][a-1]=x[3]}

잘못된 입력 또는 바운드 위치를 벗어난 오류

바이트 저장에 도움을 준 ConorO'Brien (8 바이트) 및 afuous (2 바이트) 덕분에


loop do...end-> loop{...}; 나도 Array.new(5,[0]*5)작동 한다고 생각 합니다 [*[0]*5]*5.
코너 O'Brien

@ ConorO'Brien Nope, Array.new(5,[0]*5)참조 배열을 [*[0]*5]*5만들고 평면 배열을 만드십시오
TuxCrafting

아 맞다 첫 번째를 생략하십시오 *. 그런 다음 여전히 참조 배열을 만듭니다.
코너 O'Brien

Array.new(5){[0]*5}(1..5).map{[0]*5}2 바이트를 절약하기 위해 대체 될 수 있습니다 .
어색한

4

배치, 199 바이트

@echo off
if %1 gtr 0 if %1 lss 6 if %2 gtr 0 if %2 lss 6 goto g
if
:g
for /l %%j in (5,1,-1)do call:l %* %%j
exit/b
:l
set s=000000
if %2==%2 call set s=%%s:~0,%1%%%3%%s:~%1%%
echo %s:~1,5%

위치가 범위를 벗어나면 오류가 발생합니다.


나는 당신이 기호를 사용할 수 있다고 생각 <처럼 ^<. 확실하지 않습니다.
코너 O'Brien

3

PHP, 111 (100) 97 바이트

$s=str_repeat("00000\n",5);$s[($x=($a=$argv)[1])+29-6*$y=$a[2]]=$a[3];echo$x&&$y&&$x<6&$y<6?$s:E;

E행 / 열이 범위를 벗어난 경우 인쇄 합니다.
로 실행php -r <code> <row> <column> <character>


3

파이썬, 66 바이트

lambda a,b,n,l='00000\n':6>b>0<a<6and(5-b)*l+l[:a-1]+n+l[a:]+~-b*l

a = 4, b = 3에 실패하지 않습니까?
Titus

@Titus 더 이상은 아닙니다. D
Rod

1
솔루션은 Python3에서도 작동합니다.
George

3

Dyalog APL, 24 20 18 바이트

Zgarb 덕분에 4 바이트가 절약되었습니다! Adam 덕분에 2 바이트가 절약되었습니다!

a←5 5⍴0⋄a[⊂⎕]←⍞⋄⊖a

입력 프롬프트. 설명은 아래를 참조하십시오.


20 바이트

{a←5 5⍴0⋄a[⊂⍺]←⍵⋄⊖a}

함수에 할당하고 호출하십시오 y x f 'c'. 예 :

      f←{a←5 5⍴0⋄a[⊂⍺]←⍵⋄⊖a}

      5 2 f '*'
0 * 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

      6 6 f '*'
INDEX ERROR                   
     ←{a←5 5⍴0 ⋄ a[⊂⍺]←⍵ ⋄ ⊖a}
               ∧              

      0 0 f '*'
INDEX ERROR                   
     ←{a←5 5⍴0 ⋄ a[⊂⍺]←⍵ ⋄ ⊖a}
               ∧   

설명

{a←5 5⍴0⋄a[⊂⍺]←⍵⋄⊖a}

{...}왼쪽 인수 와 오른쪽 인수가 있는 함수입니다 . 진술을 구분하므로 세 가지 진술이 있습니다.

a←5 5⍴0⋄a[⊂⍺]←⍵⋄⊖a

첫 번째 문 a←5 5⍴0세트 aA와 5에 의해 5그리드 0의.

제 문에 의해 지시 좌표의 부재로 설정 하는 방법에 대해 (되면, 문자).

마지막으로, 우리는 수행 a와의 최초 항복, 그 반환 a반전을.


{a←5 5⍴0⋄a[⊂⌽⍺]←⍵⋄⊖a}몇 바이트를 절약합니다.
Zgarb

@ Zgarb 아, 환상적입니다! 색인 생성이 그렇게 작동하는지 몰랐습니다.
코너 오브라이언

tradfn 본문으로 변환하여 두 바이트를 절약 할 수 있습니다.a←5 5⍴0⋄a[⊂⎕]←⍞⋄⊖a
Adám

@ Adám 어떻게 작동합니까? TryAPL에서는 작동하지 않는 것 같습니다.
Conor O'Brien

@ ConorO'Brien 맞습니다. TryAPL은 입력하라는 메시지를 표시하지 않지만 정식 버전을 무료로 얻을 수 있습니다 .
Adám

3

자바 스크립트 (ES6), 73 76 바이트

TypeError열 또는 행이 범위를 벗어난 경우 a를 던집니다 .

(c,r,C,a=[...`00000
`.repeat(5)])=>(a[29+c-r*6]=C,c<1|r<1|c>5|r>5||a).join``

데모


달콤하지만 1보다 작 c거나 오류가 발생하면 오류가 발생 r합니까?
ETHproductions

@ETHproductions 테스트 전용 c == 0 || r == 0입니다. 그러나 당신이 옳은 것 같아요 : 음수 값을 방지하기 위해 업데이트 할 것입니다.
Arnauld

3

C #, 199 바이트

Pete Arden의 답변을 바탕으로

string g(int c, int r, char a){if(c<1|c>5|r<1|r>5)return "Index Error";var b="00000";var d=new[]{b,b,b,b,b};c--;d[r-1]=new string('0',c)+a+new string('0',4-c);return string.Join("\r\n",d.Reverse());}

언 골프 드 :

public static string G(int c, int r, char a)
    {
        if (c < 1 || c > 5 || r < 1 || r > 5) return "Index Error"; // Check it's not out of range
        var b = "00000";
        var d = new [] { b, b, b, b, b };                           // Generate display box, and fill with the default character
        c--;                                                        // Convert the X to a 0 based index
        d[r - 1] = new string('0',c) + a + new string('0',4-c);     // Replace the array's entry in y coordinate with a new string containing the new character
        return string.Join("\r\n", d.Reverse());                    // Reverse the array (so it's the right way up), then convert to a single string
    }

사이트에 오신 것을 환영합니다! C #의 전문가는 아니지만 제거 할 수있는 공백이있는 것 같습니다.
DJMcMayhem

1
(죄송합니다, 제출 에티켓을 모릅니다) 짧은 G () : 공개 정적 문자열 G (int c, int r, char a) {return (0 <c && c <6 && 0 <r && r <6)? string.Concat (Enumerable.Range (1,29). (i => i % 6> 0? i / 6 == 5-r && i % 6 == c? a : '0': '\ n')) : "인덱스 오류";}를 선택하십시오.
Eric


2

젤리 , 28 바이트

너무 오래 느낀다 ...

Ṫ0ẋ24¤;ṙÑs5UY
’ḅ5
Ṗḟ5R¤
-ÑÇ?

TryItOnline!

어떻게?

Ṫ0ẋ24¤;ṙÑs5UY - Link 1, make grid: [row, column, character] e.g. [5,2,'*']
Ṫ             - tail: character                                  '*'
     ¤        - nilad followed by link(s) as a nilad  
 0            -     zero
  ẋ           -     repeated
   24         -     24 times                                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
      ;       - concatenate:                                     "000000000000000000000000*"
        Ñ     - call next link (2) as a monad                    21
       ṙ      - rotate left by                                   "000*000000000000000000000"
         s5   - split into chunks of length 5                    ["000*0","00000","00000","00000","00000"]
           U  - upend (reveres each)                             ["0*000","00000","00000","00000","00000"]
            Y - join with line feeds                              0*000
              - implicit print                                    00000
                                                                  00000
’ḅ5 - Link 2, position: [row, column]                             00000
’   - decrement                                                   00000
 ḅ5 - convert from base 5

Ṗḟ5R¤ - Link 3, input error checking: [row, column, character]
Ṗ     - pop: [row, column]
 ḟ    - filter out values in
  5R¤ - range(5): [1,2,3,4,5] - any values not in this remain giving a truthy result

-ÑÇ? - Main link: [row, column, character]
   ? - ternary if:
  Ç  -    last link (3) as a monad
-    -    -1 (if truthy - the error identification)
 Ñ   - next link (1) as a monad (if falsey - the grid)

2

자바 스크립트 (ES6), 89 바이트

f=(X,Y,Z,x=5,y=5)=>x+y>1?(x?X+x-6|Y-y?0:Z:`
`)+f(X,Y,Z,x?x-1:5,y-!x):X<1|X>5|Y<1|Y>5?e:""

나는 재귀를 좋아하기 때문에. ReferenceError유효하지 않은 좌표에서를 던집니다 .


2

수학, 38 바이트

(x=Table[0,5,5];x[[-#2,#]]=#3;Grid@x)&

2

Brain-Flak 415 바이트

에 +3 포함 -c

([][()()()]){{}}{}({}<(({}<(({})<>)<>>)<>)<>([((((()()()){}){}){}){}]{}<([((((()()()){}){}){}){}]{})>)(()()()()()){({}[()]<(({})){{}(<({}[()])>)}{}({}<(({})){{}(<({}[()])>)}{}>)>)}{}({}{}){<>{{}}<>{}}<>>)<>(()()()()()){({}[()]<(((((((((()()()){}){}){}){})))))((()()()()()){})>)}{}{}<>({}<()((((((()()()){}){}()){}){}()[{}])({})({})({})({}){}{}[((((()()()){}){}){}){}()]){({}[()]<<>({}<>)>)}{}<>{}>)<>{({}<>)<>}<>

온라인으로 사용해보십시오!

공백없이 문자를 먼저 삽입 한 다음 행을 열로 가져옵니다.

이것의 대부분은 단지 오류 처리입니다. Brain-Flak은 값이 범위 내에 있는지 확인하는 좋은 방법이 없습니다. 오류의 경우 아무것도 출력하지 않거나 삽입 된 문자 만 출력합니다. 실제 문제를 해결하는 데 211 바이트 만 소요됩니다.

<>(()()()()()){({}[()]<(((((((((()()()){}){}){}){})))))((()()()()()){})>)}{}{}<>({}<()((((((()()()){}){}()){}){}()[{}])({})({})({})({}){}{}[((((()()()){}){}){}){}()]){({}[()]<<>({}<>)>)}{}<>{}>)<>{({}<>)<>}<>

2

Excel VBA, 67 바이트

vba 프로젝트의 활성 시트에서 A1 : E5 범위로 출력 하고

런타임 오류 '1004':

응용 프로그램 정의 또는 객체 정의 오류

유효하지 않은 입력이 제공된 경우

암호:

Sub a(c,r,x)
c=IIf(r<1Or c>5,-1,c)
[A1:E5]=0
Cells(6-r,c)=x
End Sub

용법:

a 4,5,"#"

출력 (위의 예에서) :

    A   B   C   D   E
1   0   0   0   #   0
2   0   0   0   0   0
3   0   0   0   0   0
4   0   0   0   0   0
5   0   0   0   0   0

1

C #, 208 바이트

골프 :

string G(int c,int r,char a){if(c<1||c>5||r<1||r>5)return"Index Error";var b="00000";var d=new string[]{b,b,b,b,b};d[r-1]=d[r-1].Substring(0,c-1)+a+d[r-1].Substring(c);return string.Join("\r\n",d.Reverse());}

언 골프 드 :

public string G(int c, int r, char a)
{
  if (c < 1 || c > 5 || r < 1 || r > 5) return "Index Error";
  var b = "00000";
  var d = new string[] { b, b, b, b, b };
  d[r - 1] = d[r - 1].Substring(0, c - 1) + a + d[r - 1].Substring(c);
  return string.Join("\r\n", d.Reverse());
}

테스트 :

Console.Write(G(6, 6, '*')); //Index Error

Console.Write(G(1, 4, '#'));

00000
#0000
00000
00000
00000

Console.Write(G(5, 5, '@'));

0000@
00000
00000
00000
00000

Console.Write(G(1, 1, '}'));

00000
00000
00000
00000
}0000

경우 c및 / 또는 r경계의 밖으로 그것은 발생합니다 IndexOutOfRangeException당신은 내가 그것에 대해 제대로 사양을 확인하지 않은하지만 문 경우 먼저 제거 할 수 있습니다 있도록. 당신은에 컴파일 할 수 있습니다 Func<int, int, char, string>당신이 추가 할 필요가 믿고 바이트를 저장하기 using System.Linq;때문에의에 Reverse난 내 머리 위로 떨어져 기억하지 수 있지만 전화
TheLethalCoder

변경 d[r - 1] = d[r - 1].Substring(0, c - 1) + a + d[r - 1].Substring(c);하기 위해 d[--r] = d[r].Substring(0, c - 1) + a + d[r].Substring(c);4 바이트 저장
TheLethalCoder

1

WinDbg, 95 바이트

j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0

거의 절반 단지 인덱스 범위에있는 것이 확인 ...의 입력들의 유사 레지스터의 값을 설정함으로써 행해진 다 $t0, $t1$t2(여기서, $t2숯의 ASCII 값이 대체 보유). 예를 들어, 예를 들면 다음과 (2,5,*)같습니다.

0:000> r$t0=2
0:000> r$t1=5
0:000> r$t2=2a

0오류가 발생하여 인쇄 합니다.

작동 방식 :

j (0<(@$t0|@$t1)) & (6>@$t0) & (6>@$t1)  * If $t0 and $t1 are both positive and less than 6
'
    f 8<<16 L19 30;                      * Put 19 (0n25) '0's (ascii 30) at 2000000 (8<<16)
    eb 2000018+@$t0-@$t1*5 @$t2;         * Replace the specified cell with the new char
    da /c5 8<<16 L19                     * Print 19 (0n25) chars in rows of length 5
';
    ?0                                   * ...Else print 0

샘플 출력 :

0:000> r$t0=2
0:000> r$t1=5
0:000> r$t2=2a
0:000> j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0
Filled 0x19 bytes
02000000  "0*000"
02000005  "00000"
0200000a  "00000"
0200000f  "00000"
02000014  "00000"


0:000> r$t0=-2
0:000> j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0
Evaluate expression: 0 = 00000000


0:000> r$t0=4
0:000> r$t1=2
0:000> r$t2=23
0:000> j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0
Filled 0x19 bytes
02000000  "00000"
02000005  "00000"
0200000a  "00000"
0200000f  "000#0"
02000014  "00000"


0:000> r$t1=f
0:000> j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0
Evaluate expression: 0 = 00000000

1

하스켈, 77 바이트

r=[1..5]
(x#y)c|x>0,x<6,y>0,y<6=unlines[[last$'0':[c|i==x,j==6-y]|i<-r]|j<-r]

사용 예 :

*Main> putStr $ (2#5) '*'
0*000
00000
00000
00000
00000

경우 xy통해 범위, 외부 및 내부 루프 내에 [1..5]숯을 c가 주어진 안타 xy0달리. 경우 x또는 y범위에 있지하는 Non-exhaustive patterns예외가 발생합니다.


1

옥타브 49 바이트

@(c,r,s)char(accumarray([6-r c],s+0,[5 5],[],48))

1

QBIC , 53 50 바이트

편집 : 이제 시작 그리드를 표시 할 필요가 없다는 것을 알았으므로 _!_!_?명령 줄 매개 변수에 대한 사용자 입력 을 교환하여 ::;3 바이트를 절약했습니다.

[5|?@00000|]::;~(b>5)+(c>5)>1|_Xd\$LOCATE 6-c,b|?B

원본 버전 : 이것은 0- 그리드를 인쇄하고 대체 좌표를 취하여 0- 그리드를 표시하는 것 사이에서 정지됩니다.

[5|?@00000|]_!_!_?~(b>5)+(c>5)>1|_Xd\$LOCATE 6-c,b|?B

5의 5 개 문자열을 인쇄하고 0사용자에게 2 개의 숫자 입력과 1 개의 문자열 입력을 요청하고 숫자가 <5인지 확인하고 QBasic의 LOCATE기능을 사용 하여 올바른 문자를 대체합니다.


0

자바, 99 바이트

(i,j,k)->{int[]b=new int[]{60,60,60,60,60};int[][]a=new int[][]{b,b,b,b,b};a[i-1][5-j]=k;return a;}

0

> <> (물고기), 36 바이트 (비경쟁)

1-$p;
00000
00000
00000
00000
00000

여기 사용해보십시오!

이것은 [같은 스택에 매개 변수를 배치하여 실행 chr, y, x]. 하단의 0 중 하나는 실제로 chr명령 에 의해 변경됩니다 p. 이 작업을 수행하는 더 좋은 방법이있을 수 있지만 이것이이 기능이 유용한 독특하고 재미있는 상황이라고 생각했습니다.

설명

이 프로그램에서 간단히 1을 감산한다 x(> <>와 같이 0실제로 될 첫 번째 열) 교환 xy, 그 codebox 포인트 변경 x, ychr비아 p. y코드가 이미 1만큼 오프셋되어 있으므로 1을 빼지 않아도됩니다!

경쟁하지 않는 설명

실제로 출력을 생성하지 않기 때문에 경쟁이 아닙니다. 방금 이것이 매우 재미 있다는 것을 알았습니다. 이것이 유효한 출력으로 간주되면 알려주십시오!

y0이 될 수 있기 때문에 경쟁 이 아닙니다.하지만 이것이 유일한 대답이라고 생각합니다. 이것이 유효한 출력으로 간주되면 수정하지만 그렇지 않으면 대답이 덜 재미있게됩니다 ...


2
이와 같은 답변이 권장되지 않는 경우 알려 주시면 삭제하겠습니다.
redstarcoder

0

배쉬, 59 바이트

골프

printf '00000%0.s\n' {1..5}|sed "$1 s/./$3/$2"|grep -z "$3"

$ 1 , $ 2- 행, 열, $ 3- 교체 문자, 오류는 종료 코드를 통해보고됩니다

테스트

>./box 2 2 "*"
00000
0*000
00000
00000
00000
>echo $?
0

>./box 6 2 '*'     
>echo $?
1

0

Vim, 60 47 42 76 키 스트로크

입력 형식 (첫 번째 줄) :

25*

시작 부분에서 커서가 시작된 상태

"ax"bxx:if<C-r>a<1||<C-r>a>5||<C-r>b<1||<C-r>b>5
^
endif
6i0<ESC>Y5pG:norm <C-r>al<C-r>bkr<C-r>-
Hqqxjq5@qdd

입력이 유효하지 않은 경우 E492: Not an editor command: ^

출력을 생성하는 인용 부호는 42바이트이지만 오류를 만들기 위해 바이트 수가 크게 증가합니다.


BTW Vim
Kritixi Lithos

0

자바 8, 194192 바이트

interface M{static void main(String[]a){String r="";int i=0,j,z=new Byte(a[0]),y=new Byte(a[1]);for(;++i<6;r+="\n")for(j=0;++j<6;r+=6-i==y&j==z?a[2]:0);System.out.print(z>0&z<7&y>0&y<7?r:0);}}

올바른 입력으로 여기에서 시도하십시오.
잘못된 입력으로 여기에서 시도하십시오.

이것은 것이다 116 114 바이트 대신 대신 전체 프로그램의 함수로서 :

(a,b,c)->{String r="";for(int i=0,j;++i<6;r+="\n")for(j=0;++j<6;r+=b==6-i&a==j?c:0);return a>0&a<7&b>0&b<7?r:"0";}

여기에서 시도하십시오.

설명:

interface M{                  // Class
  static void main(String[]a){//  Mandatory main-method
    String r="";              //   Result-String, starting empty
    int i=0,j,                //   Index-integers
        z=new Byte(a[0]),     //   First input converted to integer
        y=new Byte(a[1]);     //   Second input converted to integer
    for(;++i<6;               //   Loop (1) from 1 to 6 (inclusive)
        r+="\n")              //     After every iteration: Append a new-line to the result
      for(j=0;++j<6;          //    Inner loop (2) from 1 to 6 (inclusive)
        r+=6-i==y             //     If the second input equals `6-1`,
           &j==z?             //     and the first input equals `j`:
            a[2]              //      Append the third input to the result-String
           :                  //     Else:
            0                 //      Append a zero to the result-String
      );                      //    End of inner loop (2)
                              //   End of inner loop (1) (implicit / single-line body)
    System.out.print(         //   Print:
     z>0&z<7&y>0&y<7?         //    If the coordinates are valid (1-6):
      r                       //     Print the result `r`
     :                        //    Else:
      0);                     //     Print 0 as error instead
  }                           //  End of main-method
}                             // End of class
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.