Algorithm

    10989

    memory를 줄이기 위해 초기 메모리를 설정 input은 시간이 오래걸리므로 system의 stdin.readline을 이용해서 데이터를 입력 받아옴 import sys N = int(sys.stdin.readline()) a = [0]*10001 for i in range(N): a[int(sys.stdin.readline())]+=1 for i in range(10001): if a[i] !=0: for j in range(a[i]): print(i)

    1436번

    N = int(input()) num = 666 count =0 while 1: if '666' in str(num): count+=1 if count == N: print(num) break num+=1 """ for i in range(5): for j in range(5): if i==0: if j==0: a.append(666) else: for k in range(10**j): k = str(k) a.append(int('666'+'0'*(j-len(k))+k)) elif j==0: for k in range(10**(i-1),10**i): k = str(k) a.append(int(k+'666')) else: for p in range(10**(i-1),10**i): p=str(p) for q..

    7568

    N = int(input()) name = [] rank = [1]*N for i in range(N): x,y = map(int, input().split()) name.append([x,y]) for i in range(0,N): for j in range(0,N): if name[i][0] < name[j][0] and name[i][1] < name[j][1]: rank[i]+=1 rank = map(str, rank) print(&#39; &#39;.join(rank))

    2231

    n = int(input()) def f(n): if n

    2798

    n,m = map(int,input().split()) item = input().split() result = [] for i in range(0,n-2): for j in range(i+1,n-1): for k in range(j+1,n): temp = int(item[i])+int(item[j])+int(item[k]) if temp

    11729

    count = [] def hanoi(n,from0,to,via): if n==1: count.append([from0,to]) return hanoi(n-1,from0,via,to) count.append([from0,to]) hanoi(n-1,via,to,from0) n = int(input()) hanoi(n,1,3,2) print(len(count)) for item in count: print(item[0],item[1]) 하노이 탑의 원리는 n개를 옮길 때 n-1개를 1->2으로 3을 통해서 옮기고 맨 아래에 있는 원판 한개를 1->3 옮기고 다시 n-1개의 원판을 2->3 으로 1을 통해서 옮김.

    2581

    m = int(input()) n = int(input()) result=[] def f(n): found = True if n < 2: return -1 elif n == 2: return n else: for i in range(2,int(n/2)+1): if n%i==0: found = False if found: return n else: return -1 for i in range(m,n+1): if f(i)!= -1: result.append(i) if not result: print(-1) else: print(sum(result)) print(min(result))

    1978

    n = int(input()) a=input().split() result=[] def f(n): found = True if n < 2: return -1 elif n == 2: return n else: for i in range(2,int(n/2)+1): if n%i==0: found = False if found: return n else: return -1 for i in range(n): if f(int(a[i]))!= -1: result.append(a[i]) print(len(result))

    2839

    n = int(input()) x=y=0 y = n//5 found = False while y>=0: q = n-y*5 if q%3==0: x = q//3 found = True break else: y-=1 if found: print(x+y) else: print(-1)

    2775

    t = int(input()) """ def f(k,n): if k==0: return n else: temp=0 for i in range(1,n+1): temp+=f(k-1,i) return temp for i in range(t): k = int(input()) n = int(input()) print(f(k,n)) """ for i in range(t): k = int(input()) n = int(input()) lists = [i for i in range(1,n+1)] for a in range(k): for b in range(1,n): lists[b]+=lists[b-1] print(lists[n-1]) //재귀 사용하는 방법이랑 list를 이용한 방법 두 가지 시간은 list의 경우가 ..