목록백준 (6)
언젠가는

def ari(a): c = [True for i in range(a+1)] for i in range(2,int((a**0.5)+1)): if c[i]: for j in range(i+i,a+1,i): c[j]=False return c 소수를 인덱스 값으로 찾을 수 있는 리스트를 형성한다. 0,1을 제외하고 소수는 모두 True값을 갖는다. 0과 1은 굳이 False로 바꾸지 않고 나중에 이후값부터 찾으면 된다. a = int(input()) 짝수로 주어진 개수를 입력받는다. bs = [int(input()) for i in range(a)] 리스트로 주어진 짝수들을 다 집어 넣는다. 그 이유는 제일 큰 친구를 찾아서 그 친구로 소수찾기 함수를 만들어 놓으면, 시간절약이 되기 때문이다. 처음에 입력받..

시간초과를 방지하기 위해 소수를 True, 소수 아닌 것을 False로 만든다. 1. 문제에서 6에서 1000000까지 주어진다 했으므로 a = [True for i in range(1000001)] 2. 소수는 1과 자신만을 약수로 가진 친구들, 그러면 2부터 구구단을 외우면서 False로 만들어 준다. 1001까지 하는 이유는 소수찾기에서 **0.5까지 범위 잡았던 것을 생각하면 된다. int(1000001**0.5+1) = 1001이다. for i in range(2,1001): if a[i]: for j in range(i+i,1000001,i): a[j]=False 3. 이젠 True인 친구들은 모두 소수다. for문은 작은 값부터 시작하므로, 먼저 나오면 출력하고 퇴장하면 된다. 또한, 마지막..

a, b = map(int,input().split()) a,b에 입력값 받기 c = [i for i in range(1,a+1)] c에 리스트 만들기 1부터 a까지 ans=[] ans에 출력값 넣기위함 n=0 초기값 0, b-1을 인덱스값으로 정해서 찾아주기 for i in range(a): n+=b-1 n+b-1을 해준 인덱스를 뽑아내고 있음 if n>=len(c): n=n%len(c) 리스트의 갯수보다 크면 못꺼냄, 그럴땐 인덱스값을 초기화 해주기 위해 모자란 만큼 나머지로 계산한다. (원형으로 둘러쌓여 있으므로, 인덱스 맨 뒤에서 다시 맨 앞으로 가기 때문) ans.append(str(c.pop(n))) 당첨된 값을 pop해서 ans에 넣어준다. str로 변환하는 것은 나중에 출력값을 로 해야하기..

import sys a = list(input()) 처음에 문자열을 입력받는 곳 리스트로 받아서 하나씩 이용할 것이다. b = int(input()) 에디터에서 사용하는 코드 갯수 c = [] 커서의 방향을 항상 맨 끝을 만들어 주기 위해서 사용할 리스트 for i in range(b): d = sys.stdin.readline().split() d에는 에디터의 명령어가 들어온다. split()는 P $에서 $를 집어넣기 위해서 나눠준다. if d[0]=='L' and a: c.append(a.pop()) 명령어가 L이고, a에 값이 존재하면 커서를 왼쪽으로 옮긴다. 맨 끝의 문자를 리스트 c에 보관한다. elif d[0]=='D' and c: a.append(c.pop()) 명령어가 D이고, c에 값이..

a = int(input()) a에 첫줄의 입력을 받습니다. for i in range(a): c = list(input()) list로 두번째 줄 이후의 값들을 리스트에 입력합니다. sum=0 sum을 이용해서 ()세트를 0으로 만들어 주기 위한 값입니다. for j in c: if j=='(': sum+=1 elif j==')': sum-=1 '('+')'의 합을 0으로 만들어 줍니다. if sum ')()()()()(' 의 sum은 0이 되기 때문입니다. if sum > 0: print('NO') elif sum==0: print('YES')