본문 바로가기

반응형

코딩/Python

(75)
[Python] 백준 9012 괄호 코드 작성 n = int(input()) for _ in range(n): k = list(input()) stack=[] for i in k: if i == '(': stack.append(i) elif i==')': if stack: stack.pop() else: print('NO') break else: if stack: print('NO') else: print('YES') 코드 풀이 n = int(input()) for _ in range(n): k = list(input()) stack=[] # 스택은 for문 안에 있어야 계속 초기화하면서 사용할 수 있음 for i in k: if i == '(': stack.append(i) elif i==')': if stack: #스택이 뭔가 있을경우..
[Python] 백준 4948 베르트랑 공준 코드 작성 def pr(n): #함수정의(소수 검출, 에라토스테네스의 체) if n == 1: return False for i in range(2, int(n**0.5)+1): if n%i == 0: return False else: return True prime = [] for i in range(1, 246913): if pr(i): #만약 i가 소수이면 prime.append(i) while True: cnt = 0 n = int(input()) if n==0: break for i in prime: if n < i
[Python] 백준 2562 최댓값 코드 작성 1 n = [ ] for _ in range(9): n.append(int(input())) print(max(n)) print(n.index(max(n))+1) 코드 작성 2 n = [] max1 = 0 for _ in range(9): n.append(int(input())) for i in n: if i > max1: max1 = i print(max1) print(n.index(max1)+1) 코드 풀이 1 #1 1~9번째 줄까지 입력을 하나의 세로 리스트에 넣는다. 리스트에 추가할 때는 append 함수를 작성한다. #2 그리고 n리스트에서 최댓값을 출력하고, 그 최댓값의 인덱스를 출력하는데, 인덱스는 0부터 시작하므로 1을 추가해야 한다. 코드 풀이 2 #1 입력은 위의 값과 동일하..
[Python] 백준 10818 최소, 최대 코드 작성 1 n = int(input()) k = list(map(int, input().split())) print(min(k),max(k)) 코드 작성 2 n = int(input()) k = list(map(int, input().split())) min = k[0] max = k[0] for i in k: if i > max: max = i elif i < min: min = i print(min, max) 코드 풀이 1 k의 리스트(list)를 정수(int)로 통일되게(map), 띄어쓰기로 구분(split)하여 값을 입력받고 min, max함수를 이용하여 프린트한다. 코드 풀이 2 k의 리스트(list)를 정수(int)로 통일되게(map), 띄어쓰기로 구분(split)하여 값을 입력받고 k의 ..
[Python] 10871 X보다 작은 수 코드 작성 a, b = map(int, input().split()) k = list(map(int, input().split())) for i in k: if b>i: print(i, end=' ') 코드 풀이 #1 a,b의 값을 정수(int)로 통일되게(map) 띄어쓰기로 구분(split)하여 입력받는다. 두 번째 줄의 리스트(list)를 입력받고 #2 리스트에 입력된 값을 for문으로 돌린다. b의 값보다 k의 첫번째 값(i = 0)이 클 경우, 그 값을 출력한다. #3 end = ' ' 위 값이 입력되지 않을 경우 1 1 1 이렇게 숫자 하나씩 세로로 출력되는데, end는 print값을 출력한 마지막에 띄어쓰기만 입력하여 가로로 나타나게 된다
[Python] 10807 개수 세기 코드 작성 n = int(input()) k = list(map(int, input().split())) p = int(input()) print(k.count(p)) 코드 풀이 #1 값 입력 우선 입력 값처럼 3개의 값을 입력 받는다. 2번째 줄의 경우 n개의 개수만큼 리스트(list)형의 정수(int)를 통일되게(map), 띄어쓰기(split)로 구분하여 입력한다. 그리고 출력할 때에는 k리스트중에서 p로 입력 된 값을 세어서(count)출력한다.
[Python] 1406 에디터 코드 작성 import sys s1 = list(input()) s2 = [] n = int(input()) for _ in range(n): cmd = list(sys.stdin.readline().split()) if cmd[0]=='P': s1.append(cmd[1]) elif cmd[0]=='L'and s1: #입력값의 첫번째 값이 L이면서, s1이 무언가 있다면 s2.append(s1.pop()) elif cmd[0]=='D'and s2: s1.append(s2.pop()) elif cmd[0]=='B'and s1: s1.pop() print(''.join(s1+list(reversed(s2)))) 코드 풀이 #1 문제 이해 abc의 리스트가 있고 xyz의 리스트 2개가 나누어 있다고 본다. ..
[Python] 백준 1158 요세푸스 문제 코드 작성 n, k = map(int, input().split()) arr = list(range(1,n+1)) answer = [] i = k - 1 for _ in range(n): if len(arr) > i: answer.append(arr.pop(i)) i += k - 1 elif len(arr) i: #배열의 길이가 i보다 큰 경우(i는 인덱스!) ans.append(arr.pop(i)) #arr의 i번째 배열을 빼고, 그 뺀 값을 ans에 다시 추가 i += k - 1 #다시 인덱스(i)를 k만큼 증가하는데 숫자 1개를 앞전에서 뺏으므로 ‘-1’ 추가 elif len(arr) 으로 표기됨 ','.join으로 작성 할 경우 으로 표기됨 ''.join으로 작성할 경우 으로 표기됨

반응형