"좋은"과 "나쁜"교환


17

도전 설명 :

사용자에게 입력을 요청하는 프로그램을 작성하십시오. 사용자는 Good또는 을 입력 Bad합니다. 다른 입력을 지원하지 않아도됩니다. 사용자가을 입력 Good하면 인쇄 Bad하고 그 반대의 경우 (표준 출력 등)

노트:

1) 다른 두 단어 쌍을 사용할 수 없습니다.

2) 프로그램은 한 번만 요청하고 인쇄하면됩니다.

3) 프롬프트 문자열을 표시 할 필요가 없습니다.

4) 출력은 어떤 식 으로든 입력과 분리되어 나타나야합니다.

5) 값을 수락하고 결과를 반환하는 함수는 허용되지 않습니다. 사용자는 프로그램과 상호 작용해야합니다.

행운을 빕니다!


9
프롬프트를 표시하지 않고 인수로 입력을받는 함수를 작성할 수 있습니까?
Adám

8
기능 허용 여부에 대한 질문을 편집하십시오. 다음과 같은 이유가없는 한 입력을 STDIN으로 제한하지 않는 것이 좋습니다.
Jo King

2
사용자에게 입력 요청 (stdin 등) 에는 STDIN 또는 대화식 입력 만 허용됨이 표시됩니다. 이것을 모든 기본 I / O 방법으로 변경하십시오
MilkyWay90

1
"사용자에게 입력을 요청하십시오", 그것은 명백한 질문이어야합니까? 빈 CLI 프롬프트는 실제로 아무것도 요구하지 않기 때문에…
user0721090601

5
이 제한의 목적은 무엇입니까? 값을 수락하고 결과를 반환하는 함수는 허용되지 않습니다. 사용자는 프로그램과 상호 작용해야합니다
mbomb007

답변:


46

파이썬 3 ,  32  31 바이트

exit('GBoaodd'['G'<input()::2])

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

어떻게?

입력이 'Good'비교 인지 테스트합니다 'G'<input().

사실을 사용하여 파이썬에서 그 False==0True==1는 AS 결과를 사용하는 start한 조각의 인덱스 'GBoaodd'정의되지 않은 사용 stopstep2과를 'GBoaodd'[start:stop:step].

STDERR로 인쇄합니다 ( exit대신 바이트를 저장 print).


어떤 트릭! 이것이 어떻게 작동하는지 이해할 수 없습니다.
Ishaq Khan

람다를 사용하여 바이트를 줄일 수 있습니까?
MilkyWay90

@ MilkyWay90 질문에 따라 입력을 허용하는 프로그램이어야합니다.
Jonathan Allan

기본적으로 @A__는 그렇습니다.하지만 OP에 의해 주석 처리되어 주석을 대체 할 수 있습니다.
Jonathan Allan

4
"Good"과 "Bad"가 "d"를 공유하는 것이 너무 나쁘거나 'GoodBad'.strip(input())바이트보다 짧은 것이 가능합니다.
xnor

15

APL (Dyalog Unicode) , 13 바이트 SBCS

stdin에서 입력을 요청하고 stdout으로 인쇄하는 전체 프로그램.

'GooBad'1↓⍞

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

 stdin으로부터의 입력을위한 프롬프트; Good또는Bad

¯1↓ 마지막 문자를 삭제하십시오 ( d); Goo또는Ba

'GooBad'~ 멀티 셋은 이들 문자를 빼기 Bad또는Good


5
왜 downvote Why
Adám

1
코드가 있습니까 GooBadGoodBad?
NoOneIsHere7

GooBad문자``d ''를 추가하면이 게시물을 14 바이트로 만들 수 있기 때문에 있어야한다고 생각합니다 .

@NoOneIsHere 감사합니다. 결정된.
Adám

12

튜링 머신 그러나 길이 최악 , 405 바이트

0 0 0 1 1 0 0
1 1 1 1 2 0 0
0 2 0 1 3 0 0
0 3 0 1 4 0 0
0 4 0 1 5 0 0
1 5 0 1 6 0 0
0 5 1 1 h 0 0
1 6 1 1 7 0 0
1 7 0 1 8 1 0
0 8 0 1 9 0 0
1 9 1 1 9 0 0
0 9 0 1 a 0 0
1 a 0 1 a 0 0
0 a 0 0 b 0 0
0 b 1 1 c 1 0
0 c 0 0 d 0 0
1 d 0 0 e 0 0
0 e 0 0 f 0 0
0 f 1 1 g 1 1
1 h 1 1 i 0 0
0 i 1 1 j 1 0
0 j 0 1 k 0 0
1 k 1 1 k 0 0
0 k 0 1 l 0 0
0 l 1 1 l 0 0
1 l 1 0 m 1 0
1 m 1 1 n 1 0
1 n 1 1 o 0 0
0 o 0 1 p 1 1

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

글쎄, 이것은 시간이 걸렸다.

미완성 설명 :

0 0 0 1 1 0 0 Start going to the sixth bit
1 1 1 1 2 0 0
0 2 0 1 3 0 0
0 3 0 1 4 0 0
0 4 0 1 5 0 0 End going to the sixth bit
1 5 0 1 6 0 0 If the sixth bit is 1, then it is Good. Start transforming "G" to "B" and go to state 6
0 5 1 1 h 0 0 Else, it is Bad. Start transforming "B" to "G" and go to state h
1 6 1 1 7 0 0 Keep on transforming "G" to "B"
1 7 0 1 8 1 0 End transforming and print "B"
0 8 0 1 9 0 0 We are in the first "o" in "Good". Start moving into the 5th bit.
1 9 1 1 9 0 0
0 9 0 1 a 0 0
1 a 0 1 a 0 0 Do some looping magic and start transforming "o" to "a"
0 a 0 0 b 0 0 End looping magic
0 b 1 1 c 1 0 End transforming and print "a"
0 c 0 0 d 0 0 
1 d 0 0 e 0 0 Start transforming "a" to "d"
0 e 0 0 f 0 0 
0 f 1 1 g 1 1 Stop transforming, print "d", and terminate
1 h 1 1 i 0 0 Continue transforming "B" to "G"
0 i 1 1 j 1 0 Stop transforming and print out "G"
0 j 0 1 k 0 0 Start going into position to print out "oo"
1 k 1 1 k 0 0
0 k 0 1 l 0 0 Move more efficiently using LOOPING MAGIC1!1111111 
0 l 1 1 l 0 0 looping magic end, start transforming
1 l 1 0 m 1 0 end transforming and print out out "o"
1 m 1 1 n 1 0 print out "o" again
1 n 1 1 o 0 0 get into the "d" byte
0 o 0 1 p 1 1 print "d" and execute YOU HAVE BEEN TERMINATED

4
"Turing-Machine-But-Way-Worse"는 의심 할 여지없이 내가 가장 좋아하는 esolang입니다.
MikeTheLiar

@MikeTheLiar 감사합니다!
MilkyWay90

@A__favorite/disliked/"Turing-Machine-But-Way-Worse" is, without a doubt, my new favorite esolang.
MilkyWay90

"당신은 해지되었습니다"ArnoldC, 당신입니까?
TemporalWolf

@TemporalWolf 그것은 ArnoldC입니다!
MilkyWay90


8

8088 어셈블리, IBM PC DOS, 25 바이트

미 조립 :

BA 0110     MOV  DX, OFFSET GB  ; point DX to 'Good','Bad' string 
D1 EE       SHR  SI, 1          ; point SI to DOS PSP (80H) 
02 04       ADD  AL, [SI]       ; add input string length to AL, set parity flag 
7B 02       JNP  DISP           ; if odd parity, input was 'Bad' so jump to display 'Good'
02 D0       ADD  DL, AL         ; otherwise add string length as offset for 'Bad' string 
        DISP: 
B4 09       MOV  AH, 9          ; DOS display string function 
CD 21       INT  21H            ; call DOS API, write string to console 
C3          RET                 ; return to DOS 
        GB  DB  'Good$','Bad$'

설명:

DOS가 메모리 주소에 저장하는 입력 문자열의 길이 (및 선행 공백)를보고 80H이를 AL초기 0 에 DOS에 추가합니다 . 1문자열 길이의 이진 표현에 홀수 비트 가 있으면 CPU 패리티 플래그는 홀수로 설정되고 그 반대도 마찬가지입니다. 따라서 입력 문자열 ' Bad'길이 4( 0000 0100)는 홀수 패리티이고 입력 문자열 ' Good'5( 0000 0101)은 짝수 패리티입니다.

DX처음에 문자열을 가리 키도록 설정되어 'Good$Bad$'있고, 패리티가 짝수 (입력을 의미 함 ' Good') 인 경우 문자열 포인터를 해당 길이만큼 앞쪽으로 이동 5하여 이제 가리 킵니다 'Bad$'. 패리티가 홀수이면 이미를 가리 키므로 아무 것도 수행하지 마십시오 'Good$'. 그런 다음 DOS API를 사용하여 $종료 된 문자열을 콘솔 에 표시하십시오 .

예:

여기에 이미지 설명을 입력하십시오

GOODBAD.COM을 다운로드하여 테스트 하거나 xxd덤프 에서 빌드하십시오 .

0000000: ba10 01d1 ee02 047b 0202 d0b4 09cd 21c3  .......{......!.
0000010: 476f 6f64 2442 6164 24                   Good$Bad$

7

젤리 , 8 바이트

“Ċ³ṫ³»œṣ

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

파이썬 형식의 문자열을 인수로 예상하는 전체 프로그램

어떻게?

“Ċ³ṫ³»œṣ - Main Link: list of characters, S
“Ċ³ṫ³»   - compression of dictionary words "Good"+"Bad" = ['G','o','o','d','B','a','d']
      œṣ - split on sublists equal to S
         - implicit, smashing print

1
OP가 응답 한 것처럼 보이며 입력은 STDIN으로 제한되지 않습니다.
Outgolfer Erik

6

파이썬 3, 38 37 34 33 바이트

exit("C">input()and"Good"or"Bad")

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

exit() : 종료 코드를 출력으로 리턴합니다.

"C">input(): 입력이 C알파벳 순서로 문자열보다 큰지 확인

and"Good": 결과가 True인 경우Good

or"Bad" 그렇지 않으면 Bad



2
exit(input()[3:]and"Bad"or"Good")동일한 바이트 수에서도 작동합니다.
Neil

6

C, 39 38 바이트

main(){puts("Good\0Bad"+getchar()%6);}

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

@tsh 덕분에 1 바이트를 절약했습니다.


5
main(){puts("Good\0Bad"+getchar()%6);}38 바이트
tsh

추가하지 #include<stdio.h>않겠습니까?
polfosol ఠ_ఠ

3
이 아무것도하지만, 코드 골프이라면 @polfosol ఠ_ఠ, 당신은 해야 하지만, C89, 당신은 할 수 암시 적으로 함수를 선언 .
레오 Tenenbaum

대신 null 바이트를 사용할 수 있습니까 \0?
Hello Goodbye

5

brainfuck , 72 바이트

,>+++++>,>,>,>,[<<<<[-<->>---<]<.>>+.>>.>>>]<[<<<[-<+>>+++<]<.>>-..>.>>]

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

설명 :,> +++++>,>,>,>,

"G", 5, "o", "o", "d"또는 "B", 5, "a", "d", 0을 읽습니다.

[<<<< [-<->> --- <] <. >> +. >>. >>>] 마지막 문자가 0이 아닌 경우 :

첫 번째 셀에서 한 번, 세 번째 셀에서 3을 빼십시오. 증분 셀 3

출력 셀 1, 3, 5.

<[<<< [-<+ >> +++ <] <. >>-..>. >>]

그렇지 않으면 첫 번째 셀에 한 번, 세 번째 셀에 5를 더하십시오.

셀 3 감소

출력 셀 1, 3, 3, 4


좋은 해결책입니다. 입력에 줄 바꿈을 사용하지 않으면 조금 단축 할 수 있습니다. ,> +++++>,>,>, [<<< [-<->> --- <] <. >> +. >>. >>] <[<< [-<+ >> +++ <] <. >>-..>.>]
Dorian

그래, 나는 거기에 최적화 할 것이 있다는 것을 깨달았지만 규칙 4를 준수하는 데 필요한 것을 해석하는 것이 어렵다는 것을 알았다.
Helena


4

R , 42 37 35 32 바이트

주세페와 AkselA 덕분에 -10!

`if`(scan(,'')>'C','Bad','Good')

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


1
문제 없어요. 나는 다른 R 골퍼의 이름을 많이 알고 있기 때문에 가장 최근에 이름이 표시되는 경우 종종 게시물을 클릭합니다. :-)
Giuseppe

1
이 답변 에서 "C"첫 번째 대신 사용 하면 다른 몇 바이트가 절약됩니다. "Bad"
주세페

1
호기심만으로도 `if`(readline()>"C","Bad","Good")유효한 답변이 될까요? 나는이 게임과 그 규칙에 익숙하지 않다.
AkselA

2
@AkselA 예,하지만 scan(,"")대신을 사용 하는 것이 좋습니다 readline(). 올 자유롭게 golfR 당신이 어떤 R-특정 질문이있는 경우 :-)의 R 골프 채팅방
주세페

2
@AkselA는 특정 팁에 대해서는 R의 골프 팁을 참조하십시오 . 당신이 그것을 읽으면 거기에 숨겨진 보석이 있습니다 :-)
Giuseppe

4

sed , 21 16 13 바이트

힌트를 주신 @Cowsquack에게 감사드립니다.

/B/cGood
cBad

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

TIL c은 현재 라인의 구문 분석을 단락시킵니다.


2
c더 짧은 솔루션 제공
user41805

1
다음을 사용하여 3 바이트를 더 절약 할 수 있습니다.c
user41805

조금 가지고 놀았지만 알아 냈습니다!
GammaFunction 5

3

자바 스크립트 31 바이트

Arnauld의 답변이 마음에 들지만 사용자 입력을 수락하고 StackExchange에서 다음과 같이 실행할 수 있기를 바랍니다.

alert(prompt()[3]?'Bad':'Good')



3

루비 , 22 바이트

->n{n>?F?"Bad":"Good"}

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


질문은 "사용자에게 입력을 요청합니다"라고 말하지만, 가장 짧은 방법은 람다를 바꾸는 p gets것이므로 길이는 같습니다. (원래 의견은 2 바이트를 절약 할 수 있다고 말했지만 결과를 인쇄하지는 않았습니다)
DaveMongoose

3
실제로 사용자에게 입력을 요청하는 전체 프로그램에 대해 이야기 -p하려는 경우 플래그를 사용하면 가장 효율적인 대답을 얻을 수 있습니다. $_=$_>?F?:Bad:"Good"20 바이트입니다. 온라인으로 사용해보십시오!
밸류 잉크

3

05AB1E , 10 9 바이트

”‚¿‰±”áIK

@Emigna 덕분에 -1 바이트 .

온라인으로 시도 하거나 두 가지 테스트 사례를 모두 확인 하십시오 .

설명:

”‚¿‰±”     # Push dictionary string "Good Bad"
      á    # Only keep letters (to remove the space)
       IK  # Remove the input
           # (output the result implicitly)

(섹션 내이 05AB1E 팁을 참조하십시오 어떻게 사전을 사용하는 방법을? ) 이유를 이해하는 ”‚¿‰±”것입니다 "Good Bad".


이에 대한 많은 대안이 있지만, 모두 같은 바이트 수로 끝납니다. (
Emigna

1
실제로,를 사용하여 바이트를 저장할 수 있습니다 á.
Emigna

@Emigna Ah 물론입니다. 이제 나는 내가 á그것에 대해 생각하지 않았다는 것을 믿을 수 없다는 것을 알았습니다. 그러나 동시에 나는 그것에 대해 생각하지 않았을 것임을 알고 있습니다. ;) 감사! (그리고 그래, 내가 아니라 몇 10 바이트 대안을했다.)
케빈 Cruijssen

1
á도 필요하지 않습니다. ”‚¿Bad”IK또한 9입니다.
Grimmy

3

자바 (JDK) 124 바이트

interface G{static void main(String[]a){System.out.print(new java.util.Scanner(System.in).next().length()>3?"Bad":"Good");}}

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

아마도 여전히 개선의 여지가 있지만 코드 골프는 처음입니다.


2
어서 오십시오! 코드를 실행할 수있는 온라인 통역사에 대한 설명 및 / 또는 링크 추가를 고려하십시오. (예는 다른 답변을 참조하십시오.) 코드 전용 답변은 자동으로 품질이 낮은 것으로 표시되는 경향이 있습니다.
mbomb007

4
길이 부분은 그냥있을 수 있습니다!="Bad"
Jo King


3

루비, 30 28 바이트

puts %w|Good Bad|-gets.split

골프를 좋아하지는 않지만 분할을 악용하여 후행 줄 바꿈을 제거하고 한 번의 호출로 배열로 변환하는 것을 좋아합니다.

Value Ink의 제안 덕분에 -2 바이트를 편집하십시오!


이것은 인쇄 "Good"하거나 "Bad"(따옴표 포함); 허용되는지 잘 모르겠습니다.
Jordan

1
puts배열의 각 요소를 별도의 행에 인쇄 한다는 사실을 남용하십시오 . 보다 3 바이트 더 비싸지 p[0]더 이상 필요하지 않은 parens를 제거하여 2 바이트를 더 절약 할 수 있습니다 . 온라인으로 사용해보십시오!
밸류 잉크

@ValueInk 감사합니다! 요르단의 문제는이 변화에 의해 해결되기 때문에 윈-윈입니다.
DaveMongoose

3

셰익스피어 프로그래밍 언어 , 582 바이트

(가독성을 위해 공백이 추가됨)

G.Ajax,.Puck,.Act I:.Scene I:.[Enter Ajax and Puck]Ajax:
Open mind.Be you nicer the sum ofa big cat the cube ofa big big cat?If solet usScene V.
You is the sum ofthe sum ofyou a big big cat a cat.Speak thy.You is the sum ofyou twice twice twice the sum ofa big big cat a cat.Speak thy.Speak thy.You is the square oftwice the sum ofa big big cat a cat.Let usScene X.
Scene V:.Ajax:
You is the sum ofthe sum ofyou a big big pig a pig.Speak thy.You is the sum ofyou the sum ofa big big big big big cat a pig.Speak thy.You is the sum ofyou the sum ofa big cat a cat.
Scene X:.Ajax:Speak thy.

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

와 함께 입력의 첫 글자를 얻습니다 Open mind. 그런 다음 그것이 무엇인지 결정해야합니다. B= 66과 G= 71 사이의 모든 숫자 중에서 내 무차별 대변인은 66이 쓰기가 가장 짧다고 말합니다 ( the sum ofa big cat the cube ofa big big cat), 입력의 첫 글자를 66과 비교합니다. Scene 계속 인쇄 Good또는 Scene V 인쇄 Bad.




2

엑셀, 24 바이트

=IF(A1>"C","Bad","Good")

@ MilkyWay90의 <C제안 사용.



2

젤리 , 9 바이트

“GooBa”œ^

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

설명

입력과 문자열 간의 다중 집합 대칭 차이 “GooBa”.


@JonathanAllan 감사합니다. 편집
Luis Mendo

입력이 STDIN을 통과해야한다는 징후는 보이지 않습니다.
Erik the Outgolfer

@EriktheOutgolfer 불행히도 질문이 쓰여지는 모든 방식은 실행될 때 입력을 요구 하는 프로그램이 있어야 함을 암시합니다 (프롬프트가 표시되지 않아도). OP 자체 답변도 참조하십시오. 만약 당신이 그것들을 바꾸고 싶다면 그것을 위해 가십시오 (그러나 비록 그것들이 약간 다르지만 비슷한 첫 번째 질문에 답하지 않았다는 점에 유의하십시오)
Jonathan Allan

OP가 응답 한 것처럼 보이며 입력은 STDIN으로 제한되지 않습니다.
Outgolfer Erik

@EriktheOutgolfer 감사합니다! 압연 다시
루이스 Mendo


2

케그 , 22 바이트

?^_^_o=[^aB^_|^ooG^]

2

brainfuck , 52 바이트

,>,,<<,[>-----.<---.+++.<<]>[+++++.+[-<-->]<-..>>.>]

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

Bad가 Good보다 한 글자 짧은 문자에 의존하므로 마지막 입력은 비어 있습니다.

설명:

,>,,<<,       Get input into the first three cells
[             If the last letter was not empty (i.e. Good)
 >-----.      Decrement 'G' to 'B' and print
 <---.        Decrement 'd' to 'a' and print
 +++.         Increment back to 'd' and print
>>]           End loop
>[            If it is Bad instead
 +++++.       Increment 'B' to 'G' and print
 +[-<-->]<-.. Manipulate into  'o' and print twice
 >>.          Print 'd'
>]            End loop


2

Boolfuck , 47 바이트

+>,+;>,;,+;>;;;+;+;+[;<;;;,;+;;+;<];;+;+;;+;;+;

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

기본적으로 입력을 비트로 취한 다음 특정 비트를 반전시켜 반대 문자로 바꿀 수 있다는 사실을 사용합니다.

설명:

+>,+;>,;,+;>;;;+;+;+    Print the first letter by inverting the first and third bits of the input
                        'B' = 01000010
                        'G' = 11100010
                        This leaves the tape as
                            1 1 1 1' in the case of Bad
                            1 0 0 1' in the case of Good
                        By making the center cells the inverted bits
[;<;;;,;+;;+;<]         Print the center letters by looping over the two pairs of cells
                        0 1' results in 'a' = 10000110
                        1 1' results in 'o' = 11110110 by printing the 1 in the 2-4th places
                        1 1 1 1' loops twice, while 1 0 0 1' only loops once
;;+;+;;+;;+;            Finally print 'd' = 00100110


2

Keg , -rt 20 17 15 13 8 7 바이트 (SBCS)

-᠀‘5ƳP↫

다음으로 번역 :

from KegLib import *
from Stackd import Stack
stack = Stack()
printed = False
iterable(stack, 'GoodBad')
string_input(stack)
maths(stack, '-')

if not printed:
    printing = ""
    for item in stack:
        if type(item) in [str, Stack]:
            printing += str(item)
        elif type(item) == Coherse.char:
            printing += item.v

        elif item < 10 or item > 256:
            printing += str(item)
        else:
            printing += chr(item)
    print(printing)

05AB1E 답변의 포트입니다. 본질적으로, 그것은 :

  • 끈을 밀어 "GoodBad"
  • 입력을 문자열로받습니다
  • 푸시 된 문자열에서 입력을 뺍니다. 이것은 입력의 첫 번째 인스턴스 GoodBad를 아무것도 로 바꾸지 않고 작동합니다 .
  • 결과 문자열을 내재적으로 인쇄합니다.
  • 그만큼 -rt 플래그는 Keg에게 오른쪽에서 왼쪽으로 토큰을 읽도록 지시합니다.

답변 내역

?G=[øBad|ø‘5Ƴ

다음으로 번역합니다 :

from KegLib import *
from Stackd import Stack
stack = Stack()
printed = False
Input(stack)
character(stack, 'G')
comparative(stack, '=')
if bool(stack.pop()):
    empty(stack)
    character(stack, 'B')
    character(stack, 'a')
    character(stack, 'd')

else:
    empty(stack)
    iterable(stack, 'Good')

if not printed:
    printing = ""
    for item in stack:
        if type(item) is Stack:
            printing += str(item)

        elif type(item) is str:
            printing += custom_format(item)
        elif type(item) == Coherse.char:
            printing += item.v

        elif item < 10 or item > 256:
            printing += str(item)
        else:
            printing += chr(item)
    print(printing)

설명

?G=[øBad|ø‘5Ƴ

?            #Get input from user
 G=          #If the first letter is "G"
   [øBad     #Clear the stack and push "Bad"
        |    #Else,
         ø‘5Ƴ#Clear the stack and push the compressed string "Good"

1
멋지다. 나는 그 길이까지 골프를 타지 못했다.

@A__ 내가 투표
한대로

내 대답은 너보다 훨씬 나빠 당신은 내 대답을 upvoted하지 않아야 ...

최신 통 설명서가 있습니까?
EdgyNerd

@EdgyNerd는 실제로는 아닙니다. 문서를 업데이트 한 지 오래되었습니다. 새로운 것들에 대한 대부분의 정보는 채팅 / 여기
Lyxal

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.