삼각 종속성


25

삼각형의 개수 의 합이다 수이고 n1 내지 자연수 n. 예를 들어 삼각형 숫자도 1 + 2 + 3 + 4 = 10마찬가지 10입니다.

양의 정수 ( 0 < n <= 10000)를 입력 (정수 또는 문자열로 사용할 수 있음)으로 지정하면 입력에 추가하여 다른 삼각 숫자를 만들 수있는 가장 작은 삼각 숫자를 반환하십시오.

예를 들어 주어진 input 26,에 10결과를 추가 36하면 삼각형 숫자도됩니다. 다른 삼각형 숫자를 만들기 위해 10추가 할 수있는 것보다 작은 삼각형 숫자는 없으므로이 경우 올바른 결과입니다.2610

0 입력이 삼각 숫자 인 경우, 입력 자체가 삼각 숫자 인 경우 출력은 0

테스트 케이스

사례는 형식으로 제공됩니다 input -> output (resulting triangular number)

0     -> 0   (0)
4     -> 6   (10)
5     -> 1   (6)
7     -> 3   (10)
8     -> 28  (36)
10    -> 0   (10)
24    -> 21  (45)
25    -> 3   (28)
26    -> 10  (36)
34    -> 21  (55)
10000 -> 153 (10153)

채점

이것은 이므로 각 언어에서 가장 적은 바이트 가 이깁니다!


그렇지 26 -> 2않습니까?
— Okx

@ Okk 같은 실수를 저질렀습니다 . 다른 삼각형 숫자를 만들려면 현재 숫자에 추가 할 삼각형 숫자를 찾아야합니다 .
— Martin Ender 2016 년

2
관련. (경계선 복제)
— Martin Ender

답변:


21

자바 8, 58 57 바이트

n->{int i=0,m=0;while(n!=0)n+=n<0?++i:--m;return-~i*i/2;}

온라인 테스트 스위트

1 바이트 절약을위한 Dennis 에게 감사합니다 .


6
이제 이것은 자바입니다. :)
— Olivier Grégoire

4
@Computronium, 작업 순서 는 Java 언어 사양에 의해 보장됩니다 . 자바는 의도적으로 C의 약점을 피한다.
— Peter Taylor


2
return-~i*i/2;바이트를 저장합니다.
— Dennis

1
@Okx Java는 기본 유형의 경우 값으로 전달되고 객체 (배열 포함)의 경우 기준으로 전달됩니다. 실제로 동일한 변수로 출력하려면 참조로 전달 컨텍스트에 있어야합니다 (명시 적으로 링크에 명시되어 있음). 내가 참조 할 수있는 유일한 방법 int[]은 intas 인수 대신 as 를 전달하는 것입니다 . 그러나 그것은 나중에 배열을 다루는 것을 의미합니다. 이것은 작동 할 수 x->{int i=0,m=0,n=x[0];while(n!=0)n+=n<0?++i:--m;x[0]=-~i*i/2;}있지만 63 바이트입니다.
— Olivier Grégoire

7

MATL , 13 12 바이트

Emigna의 05AB1E 답변 에서 아이디어 (세트 교차)를 사용하여 1 바이트 제거

Q:qYstG-X&X<

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

설명

하자 t(n) = 1 + 2 + ··· + n나타 n번째 삼각형의 수입니다.

코드는 주어진 n솔루션이에 의해 상한 이라는 사실을 이용합니다 t(n-1). 이것을 보려면, 삼각형이 t(n-1) + n같다는 것을 관찰하십시오 t(n).

8예를 들어 입력 을 고려하십시오 .

Q:q   % Input n implicitly. Push [0 1 2 ... n]
      % STACK: [0 1 2 3 4 5 6 7 8]
Ys    % Cumulative sum
      % STACK: [0 1 3 6 10 15 21 28 36]
t     % Duplicate
      % STACK: [0 1 3 6 10 15 21 28 36], [0 1 3 6 10 15 21 28 36]
G-    % Subtract input, element-wise
      % STACK: [0 1 3 6 10 15 21 28 36], [-8 -7 -5 -2  2  7 13 20 28]
X&    % Set intersection
      % STACK: 28
X<    % Minimum of array (in case there are several solutions). Implicit display
      % STACK: 28

Q경계에 대한 당신의 주장으로 선행을 제거 할 수 있습니까 ?
— Giuseppe

@Giuseppe 아니요, 입력에 실패했습니다 8. 출력이 경계와 같으면 t(n-1)코드는 다음과 같이 결과를 얻습니다 t(n)-n. 그래서 t(n)필요하다. 어쨌든 아이디어 주셔서 감사합니다!
— Luis Mendo

7

자바 (OpenJDK 8) , 83 바이트

n->{int m=0,a=n,b;for(;a-->0;)for(b=0;b<=n;)m=2*n+b*~b++==a*~a?a*a+a:m;return m/2;}

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

크레딧


1
좋은 답변입니다 (항상 그렇습니다.). 내가 내 글을 올렸을 때 이미 자바 답변이 있다는 것을 알지 못했다 . :)
— Kevin Cruijssen 2016 년

감사! 네, 첫 대답은 정말 중복되었습니다. 더 많은 프로세서 욕심이 있지만 수정하고 더 수학적으로 만들었습니다. 잠시 후 당신을 확인합니다!
— Olivier Grégoire

나는 아직도 여기서 무슨 일이 일어나고 있는지 이해하지 못한다. 왜 작동합니까? 매번 m을 교체하고 있으므로 요점은 무엇입니까?
— V. Courtois 2016 년

2
@ V.Courtois이 질문은 가장 작은 것을 요구합니다 m. 그래서 a아래 에서 로 이동 합니다 0. "그러나 당신은 -loop 에서 같은 값 a*a+a을 100 배로 할당 m하고 b있다"고 그렇다. 나는 100 번 할 필요는 없지만, b-loop를 먼저 끊지 않으면 서 바이트를 얻는다.
— Olivier Grégoire

@ OlivierGrégoire를 봅니다. 그래서 그것은 의도적으로 비효율적입니다 : D
— V. Courtois


4

Neim , 12 9 바이트

tS𝕊Λt𝕚)0𝕔

계산하는 데 시간이 너무 오래 걸리지 만 (무한한 시간과 메모리가 제공되는 경우) 링크에서 첫 번째 143 개의 삼각형 숫자 만 생성합니다 £𝕖.

경고 : 이후 버전에서는 작동하지 않을 수 있습니다. 그렇다면 £ 대신 143을 사용하십시오.

설명:

t                 Infinite list of triangular numbers
 [ 𝕖]             Select the first  v  numbers
 [£ ]                              143
     S𝕊           Subtract the input from each element
       Λ  )       Only keep elements that are
        t𝕚          triangular
           0𝕔     Get the value closest to 0 - prioritising the higher number if tie

시도 해봐!


0에서 10000 사이의 입력에 대해 처음 143 개의 삼각형 숫자는 어떻게 충분합니까? input 9998으로 예상되는 결과는 3118753143 번째 삼각형 수 ( '10296')보다 큽니다.
— Olivier Grégoire

@ OlivierGrégoire 이유This takes too long to compute (but works given infinite time and memory)
— Stephen

@StepHen에게 감사하지만 그것은 내가 말한 것이 아닙니다. 내가 암시 한 것은 "첫 번째 143 개의 삼각형 숫자는 10,000의 입력을 처리하기에 충분하다"는 문장이 잘못되었다는 것입니다. 나는 수학을하지 않았지만 10000까지의 사건을 처리하기 위해서는 약 10000 개의 삼각형 숫자가 필요하다고 생각합니다.
— Olivier Grégoire

@ OlivierGrégoire 나는 10,000의 입력을 처리하기에 충분하지만 그보다 적은 수는 입력하지 않았다고 언급했다. £200과 같이 더 높은 숫자로 자유롭게 변경하십시오.
— Okx

@Okx 알았어. 처음 읽을 때 설명을 이해하지 못했습니다. :)
— Olivier Grégoire

4

PHP , 45 바이트

for(;!$$t;$t+=++$i)${$argn+$t}=~+$t;echo~$$t;

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

더 짧은 변형입니다 for(;!$r[$t];$t+=++$i)$r[$argn+$t]=~+$t;echo~$r[$t];

넓히는

for(;!$$t;  # stop if a triangular number exists where input plus triangular number is a triangular number
$t+=++$i) # make the next triangular number
  ${$argn+$t}=~+$t; # build variable $4,$5,$7,$10,... for input 4 
echo~$$t; # Output result 

PHP , 53 바이트

for(;$d=$t<=>$n+$argn;)~$d?$n+=++$k:$t+=++$i;echo+$n;

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

PHP 7에서 새로운 우주선 연산자 를 사용하십시오

넓히는

for(;$d=$t<=>$n+$argn;) # stop if triangular number is equal to input plus triangular number 
  ~$d
    ?$n+=++$k  # raise additional triangular number
    :$t+=++$i; # raise triangular number sum
echo+$n; # Output and cast variable to integer in case of zero

PHP , 55 바이트

for(;fmod(sqrt(8*($t+$argn)+1),2)!=1;)$t+=++$i;echo+$t;

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


4

자바 8 110 102 100 93 92 바이트

n->{int r=0;for(;t(r)<-t(n+r);r++);return r;}int t(int n){for(int j=0;n>0;n-=++j);return n;}

@PeterTaylor 덕분에 -2 바이트 . @JollyJoker
덕분에 -7 바이트 .
@ceilingcat 덕분에 -1 바이트 .

설명:

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

n->{                  // Method with integer as parameter and return-type
  int r=0;            //  Result-integer (starting at 0)
  for(;t(r)<-t(n+r);  //  Loop as long as neither `r` nor `n+r` is a triangular number
    r++);             //   And increase `r` by 1 after every iteration
  return r;}          //  Return the result of the loop

int t(int n){         // Separate method with integer as parameter and return-type
                      // This method will return 0 if the input is a triangular number
  for(int i=0;n>0;)   //  Loop as long as the input `n` is larger than 0
    n-=++j;           //   Decrease `n` by `j` every iteration, after we've raised `j` by 1
  return n;}          //  Return `n`, which is now either 0 or below 0

1
Java 솔루션을 가장 쉽게 읽을 수 있음 :)
— JollyJoker

@JollyJoker 어쩌면 그것이 가장 긴 이유입니다. ;) 아니면 추가 된 설명 때문입니까?
— Kevin Cruijssen

아냐, 나는 코드에 대해 생각하고 있었다. Peter Taylor의 솔루션이 어떻게 작동하는지 알아내는 데 15 분이 걸렸습니다. 의견이 없어도 당신은 분명합니다.
— JollyJoker 2016 년

3

Brachylog , 17 15 바이트

⟦{a₀+}ᶠ⊇Ċ-ṅ?∧Ċh

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

설명

⟦                  [0, …, Input]
 {   }ᶠ            Find all…
  a₀+                …Sums of prefixes (i.e. triangular numbers)
       ⊇Ċ          Take an ordered subset of two elements
         -ṅ?       Subtracting those elements results in -(Input)
            ∧Ċh    Output is the first element of that subset

3

파이썬 2 , 59 바이트

lambda n:min((r-2*n/r)**2/8for r in range(1,2*n,2)if n%r<1)

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

삼각 숫자 를 얻기 위해 t추가 할 수있는 것보다 다음과 같은 삼각 숫자의 특성을 사용합니다 n.

8*t+1 = (r-2*s)^2제수 쌍 (r,s)으로 r*s==n하고 r, 홀수.

코드는 그러한 삼각형 숫자의 최소값을 취합니다.


3

젤리 , 8 바이트

0r+\ðf_Ḣ

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

작동 원리

0r+\ðf_Ḣ  Main link. Argument: n

0r        Build [0, ..., n].
  +\      Take the cumulative sum, generating A := [T(0), ..., T(n)].
    ð     Begin a dyadic chain with left argument A and right argument n.
      _   Compute A - n, i.e., subtract n from each number in A.
     f    Filter; keep only numbers of A that appear in A - n.
       Ḣ  Head; take the first result.

3

Japt , 24 23 16 15 바이트

ò å+
m!nNg)æ!øU

그것을 테스트

ETH 덕분에 1 바이트 절약


설명

    :Implicit input of integer U.
ò   :Create an array of integers from 0 to U, inclusive.
å+  :Cumulatively reduce by summing. Result is implicitly assigned to variable V.
m   :Map over U.
!n  :From the current element subtract...
Ng  :  The first element in the array of inputs (the original value of U).
æ   :Get the first element that returns true when...
!øU :  Checking if U contains it.
    :Implicit output of resulting integer.

나는 당신이 바이트를 절약 할 수 있다고 생각합니다 æ!øV. 그 외에는 훌륭해 보입니다 :-)
— ETHproductions



2

수학, 62 바이트

(s=Min@Abs[m/.Solve[2#==(n-m)(n+m+1),{n,m},Integers]])(s+1)/2&

Mathematica를 모르지만 Solve[2*#==m(m+1)-n(n+1)더 짧을 것입니다 (작동하는 경우)?
— Kritixi Lithos 2016

예, 방금 답변을 게시하고 바로 골프를
— 치려고합니다.

2

파이썬 2 , 78 71 70 바이트

ovs 와 theespinosa에 7 바이트가 저장 되었습니다.

의 발언으로 인해 저장된 하나 더 바이트 닐 , x+9suffisant이고 확인 모든 자연수에 대해 0 <= n <= 10000. 또한 대신에 확인 되었으며 작동합니다.x+1x+9

x=input()
I={n*-~n/2for n in range(x+1)}
print min(I&{i-x for i in I})

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


2
n*-~n/2n*(n+1)/2
— ovs

2
범위 (x + 9)가 작동합니까?
— Neil

2
{n*(n+1)/2for n in range(999)}명시 적 대신 사용할 수 있고 세 번째 줄 대신 set사용할 수도 있습니다{}set
— TheEspinosa

2

자바 스크립트 (ES6), 43 42 바이트

f=(n,a=s=0)=>n?f(n+=n>0?--s:++a,a):a*++a/2
<input type=number min=0 value=0 oninput=o.textContent=f(+this.value)><pre id=o>0

편집 : @PeterTaylor 덕분에 1 바이트가 절약되었습니다.


Setting a global variable is a hideous abuse of a default parameter. +1. But FWIW you can save a further byte by replacing -++s with --s, as I did in my independently derived but quite similar Java version. (Addendum: you also need to change the test to n>0).
— Peter Taylor

@PeterTaylor Huh, so the n>s check was a red herring all along!
— Neil

Works not for 8192
— Jörg Hülsermann

@JörgHülsermann If you're referring to the snippet, then your browser's stack size may not be large enough, or you may need a browser with experimental tail call optimisation. Alternatively, if you're using NodeJS for testing, use node --stack_size= to increase its stack size.
— Neil

2

Python 3, 60 44 bytes

f=lambda n,k=1:(8*n+1)**.5%1and f(n+k,k+1)+k

Thanks to @xnor for a suggestion that saved 16 bytes!

Try it online!

Background

Let n be a non-negative integer. If n is the kth triangular number, we have

condition

which means there will be a natural solution if and only if 1 + 8n is an odd, perfect square. Clearly, checking the parity of 1 + 8n is not required.

How it works

The recursive function n accepts a single, non-negative integer as argument. When called with a single argument, k defaults to 1.

First, (8*n+1)**.5%1 tests if n is a triangular number: if (and only if) it is, (8*n+1)**.5 will yield an integer, so the residue from the division by 1 will yield 0.

If the modulus is 0, the and condition will fail, causing f to return 0. If this happens in the initial call to f, note that this is the correct output since n is already triangular.

If the modulus is positive, the and condition holds and f(n+k,k+1)+k gets executed. This calls f again, incrementing n by k and k by 1, then adds k to the result.

When f(n0, k0) finally returns 0, we back out of the recursion. The first argument in the first call was n, the second one n + 1, the third one n + 1 + 2, until finally n0 = n + 1 + … k0-1. Note that n0 - n is a triangular number.

Likewise, all these integers will be added to the innermost return value (0), so the result of the intial call f(n) is n0 - n, as desired.


If you increment n in recursing as well, you can write n rather than (n+k).
— xnor


Wow, that's a lot nicer than what I was trying.
— xnor

2

C# (.NET Core), 291 281 bytes

class p{static int Main(string[]I){string d="0",s=I[0];int c=1,j,k;for(;;){j=k=0;string[]D=d.Split(' '),S=s.Split(' ');for(;j<D.Length;j++)for(;k<S.Length;k++)if(D[j]==S[k])return int.Parse(D[k]);j=int.Parse(D[0])+c++;d=d.Insert(0,$"{j} ");s=s.Insert(0,$"{j+int.Parse(I[0])} ");}}}

Try it online! Program that takes a string as input and outputs through Exit Code.

Saved 10 Bytes thanks to Kevin Cruijssen


1
Hi, welcome to PPCG! You don't need a full program unless the challenge states otherwise. The default is program/function, so a lambda is allowed as well in C#. But if you want to use program, you can golf some things in your current code: class p{static int Main(string[]I){string d="0",s=I[0];int c=1,j,k;for(;;){j=k=0;string[]D=d.Split(' '),S=s.Split(' ');for(;j<D.Length;j++)for(;k<S.Length;k++)if(D[j]==S[k])return int.Parse(D[k]);j=int.Parse(D[0])+c++;d=d.Insert(0,$"{j} ");s=s.Insert(0,$"{j+int.Parse(I[0])} ");}}} (281 bytes)
— Kevin Cruijssen

@KevinCruijssen Thanks for the advice! using for(;;) to make an infinite loop is a nice bump, and I'll make sure to think more carefully about whether using var is actually more efficient than using an explicit type but combining the declarations, and I guess be more diligent in removing unnecessary brackets. As for the program vs. function, I started with a lambda but couldn't get it to run in TIO. I know a TIO link isn't actually necessary, but it's something I like to see in others' answers so I wanted at least something similar in my own.
— Kamil Drakari

I'm also not very good in C# lambdas tbh, I usually codegolf in Java. But I think this should be correct. (252 bytes). Also, in case you haven't seen it yet: Tips for code-golfing in C# and Tips for golfing in <all languages> might be interesting to read through. Again welcome, and +1 from me. Nice first answer. Enjoy your stay. :)
— Kevin Cruijssen

2

JavaScript (ES7), 46 44 bytes

f=(n,x=r=0)=>(8*(n+x)+1)**.5%1?f(n,x+=++r):x

Try it

o.innerText=(
f=(n,x=r=0)=>(8*(n+x)+1)**.5%1?f(n,x+=++r):x
)(i.value=8);oninput=_=>o.innerText=f(+i.value)
<input id=i type=number><pre id=o>


1
Would r=x=0 work?
— Kritixi Lithos

Sadly not, @KritixiLithos.
— Shaggy

1

05AB1E, 8 bytes

ÝηODI-Ãн

Try it online! or as a Test suite

Explanation

Ý          # range [0 ... input]
 η         # prefixes
  O        # sum each
   D       # duplicate
    I-     # subtract input from each
      Ã    # keep only the elements in the first list that also exist in the second list
       н   # get the first (smallest)

1

Dyalog APL, 19 bytes

6 bytes saved thanks to @KritixiLithos

{⊃o/⍨o∊⍨⍵+o←0,+\⍳⍵}

Try it online!

How?

o←0,+\⍳⍵ - assign o the first ⍵ triangular numbers

o/⍨ - filter o by

o∊⍨⍵+o - triangular numbers that summed with ⍵ produce triangulars

⊃ - and take the first


+\⍳⍵ should work instead of what you are using to generate the triangular numbers.
— Kritixi Lithos

I think ⊃ works instead of ⌊/
— Kritixi Lithos



1

Add++, 68 bytes

L,RBFEREsECAAx$pBcB_B]VARBFEREsB]GEi$pGBcB*A8*1+.5^1%!!@A!@*b]EZBF#@

Try it online!, or see the test suite!

Even Java is beating me. I really need to add some set commands to Add++

How it works

L,    - Create a lambda function
      - Example argument:  8
  R   - Range;     STACK = [[1 2 3 4 5 6 7 8]]
  BF  - Flatten;   STACK = [1 2 3 4 5 6 7 8]
  ER  - Range;     STACK = [[1] [1 2] ... [1 2 3 4 5 6 7 8]
  Es  - Sum;       STACK = [1 3 6 10 15 21 28 36]
  EC  - Collect;   STACK = [[1 3 6 10 15 21 28 36]]
  A   - Argument;  STACK = [[1 3 6 10 15 21 28 36] 8]
  A   - Argument;  STACK = [[1 3 6 10 15 21 28 36] 8 8]
  x   - Repeat;    STACK = [[1 3 6 10 15 21 28 36] 8 [8 8 8 8 8 8 8 8]]
  $p  - Remove;    STACK = [[1 3 6 10 15 21 28 36] [8 8 8 8 8 8 8 8]]
  Bc  - Zip;       STACK = [[1 8] [3 8] [6 8] [10 8] [15 8] [21 8] [28 8] [36 8]]
  B_  - Deltas;    STACK = [-7 -5 -2 2 7 13 20 28]
  B]  - Wrap;      STACK = [[-7 -5 -2 2 7 13 20 28]]
  V   - Save;      STACK = []
  A   - Argument;  STACK = [8]
  R   - Range;     STACK = [[1 2 3 4 5 6 7 8]]
  BF  - Flatten;   STACK = [1 2 3 4 5 6 7 8]
  ER  - Range;     STACK = [[1] [1 2] ... [1 2 3 4 5 6 7 8]]
  Es  - Sum;       STACK = [1 3 6 10 15 21 28 36]
  B]  - Wrap;      STACK = [[1 3 6 10 15 21 28 36]]
  G   - Retrieve;  STACK = [[1 3 6 10 15 21 28 36] [-7 -5 -2 2 7 13 20 28]]
  Ei  - Contains;  STACK = [[1 3 6 10 15 21 28 36] [0 0 0 0 0 0 0 1]]
  $p  - Remove;    STACK = [[0 0 0 0 0 0 0 1]]
  G   - Retrieve;  STACK = [[0 0 0 0 0 0 0 1] [-7 -5 -2 2 7 13 20 28]]
  Bc  - Zip;       STACK = [[0 -7] [0 -5] [0 -2] [0 2] [0 7] [0 13] [0 20] [1 28]]
  B*  - Products;  STACK = [0 0 0 0 0 0 0 28]
  A   - Argument;  STACK = [0 0 0 0 0 0 0 28 8]
  8*  - Times 8;   STACK = [0 0 0 0 0 0 0 28 64]
  1+  - Increment; STACK = [0 0 0 0 0 0 0 28 65]
  .5^ - Root;      STACK = [0 0 0 0 0 0 0 28 8.1]
  1%  - Frac part; STACK = [0 0 0 0 0 0 0 28 0.1]
  !!  - To bool;   STACK = [0 0 0 0 0 0 0 28 1]
  @   - Reverse;   STACK = [1 28 0 0 0 0 0 0 0]
  A   - Argument;  STACK = [1 28 0 0 0 0 0 0 0 8] 
  !   - Not;       STACK = [1 28 0 0 0 0 0 0 0 0]
  @   - Reverse;   STACK = [0 0 0 0 0 0 0 0 28 1]
  *   - Multiply;  STACK = [0 0 0 0 0 0 0 0 28]
  b]  - Wrap;      STACK = [0 0 0 0 0 0 0 0 [28]]
  EZ  - Unzero;    STACK = [[28]]
  BF  - Flatten;   STACK = [28]
  #   - Sort;      STACK = [28]
  @   - Reverse;   STACK = [28]

1

R, 46 44 43 41 bytes

function(x,y=cumsum(0:x))y[(x+y)%in%y][1]

Try it online!

An anonymous function with one mandatory argument, x; computes first x+1 triangular numbers as an optional argument to golf out a few curly braces. I used choose before I saw Luis Mendo's Octave answer.

I shaved off a few bytes of Luis Mendo's answer but forgot to use the same idea in my answer.





0

Clojure, 74 bytes

#(nth(for[t[(reductions +(range))]i t :when((set(take 1e5 t))(+ i %))]i)0)
#(nth(for[R[reductions]i(R + %(range)):when((set(R - i(range 1e5)))0)]i)0)

Pick your favourite :) Loops might be shorter...


0

Python 2, 82 bytes

f=lambda n,R=[1]:n-sum(R)and f(n,[R+[R[-1]+1],R[1:]][sum(R)>n])or sum(range(R[0]))

Try it online

This was created by modifying this answer from the related question.


works not for 8192
— Jörg Hülsermann

It doesn't work for that on the related question either, because of the recursion depth. I'm not sure what the consensus is on that.
— mbomb007

Some other answers have the same problem. I give only the info
— Jörg Hülsermann
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.