본문 바로가기

파이썬 코테

(10)
[python] 코딩테스트 대비 - 그리디 알고리즘(정해진 시간 최대 배치) 문제) 답안코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import sys #sys.stdin=open("input.txt", "r") n=int(input()) meeting=[] for i in range(n): a, b=map(int, input().split()) meeting.append((a, b)) meeting.sort(key=lambda x : (x[1], x[0]))#끝나는 시간으로 정렬 et=0 cnt=0 for x, y in meeting: if x>=et:#시작시간이 끝나는 시간 보다 크다면, et=y#끝나는 시간 업데이트 cnt+=1#회의 추가 print(cnt) Colored by Color Scripter cs
[python] 코딩테스트 대비 - 이분검색(랜선자르기) 문제) 답안 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import sys #sys.stdin=open("input.txt", "r") def Count(len):#len으로 짜를 수 있는 총 갯수 리턴 cnt=0 for x in Line: cnt+=(x//len) return cnt k, n=map(int, input().split()) Line=[]#길이 리스트 res=0#정답 largest=0#최대 값 for i in range(k): tmp=int(input()) Line.append(tmp) largest=max(largest, tmp) lt=1 rt=largest#1~최대값 범위 지정 whi..
[python] 코팅테스트 대비 - 2차원 배열 상하좌우 비교 문제) 정답 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import sys #sys.stdin = open("input.txt", 'r') dx=[-1, 0, 1, 0]#상하좌우 탐색을 위함. dy=[0, 1, 0, -1]#상하좌우 탐색을 위함. n=int(input()) a=[list(map(int, input().split())) for _ in range(n)] ######0으로 배열 둘러 싸기####### a.insert(0, [0]*n)#최상단에 0배열 추가 a.append([0]*n)#최하단에 0배열 추가 for x in a:#각 행마다 맨 앞, 맨 뒤에 0추가 x.insert(0, 0) x.append(0) #######..
[python] 코딩테스트 대비 - 2차원 배열 회전 및 모래시계 탐색 문제) 답안코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 import sys #sys.stdin = open("input.txt", 'r') n=int(input()) a=[list(map(int, input().split())) for _ in range(n)] m=int(input())#회전 명령 수 for i in range(m): h, t, k=map(int, input().split())#행, 방향, 수 if(t==0):#왼쪽일 경우 for _ in range(k): a[h-1].append(a[h-1].pop(0))#맨 앞자료를 빼서 맨 뒤로 삽입 else:#오른쪽일 경우 for _ in ..
[python] 코딩테스트 대비 - 2차원배열 다이아몬드 문제) 답안 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import sys #sys.stdin = open("input.txt", 'r') n=int(input()) a=[list(map(int, input().split())) for _ in range(n)] res=0#정답 s=e=n//2#초기값(격자판 가운데 최상단) for i in range(n): for j in range(s, e+1): res+=a[i][j] if i
[python] 코딩테스트 대비 - 2차원 배열 합 문제) 정답 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 import sys #sys.stdin = open("input.txt", 'r') n=int(input()) a=[list(map(int, input().split())) for _ in range(n)]#2차원 배열 초기화 largest=-2147000000 for i in range(n): #열행 합 추출 sum1=sum2=0 for j in range(n): sum1+=a[i][j]#가로 sum2+=a[j][i]#세로 if sum1>largest: largest=sum1 if sum2>largest: largest=sum2 sum1=s..
[python] 코딩테스트 대비 - 수열의 합 (경우의 수) 문제) 정답 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import sys #sys.stdin = open("input.txt", 'r') n, m=map(int, input().split()) a=list(map(int, input().split())) lt=0#왼쪽 포인터 rt=1#오른쪽 포인터 tot=a[0]#합 cnt=0#카운트 while True: if tot
[python] 코딩테스트 대비 - 카드 역배치(리스트 뒤집기) 문제) 답안 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 import sys #sys.stdin=open("input.txt", "r") a=list(range(21))#리스트 생성 for _ in range(10): s, e=map(int, input().split())#구간 입력 for i in range((e-s+1)//2):#앞에서부터, 뒤에서 부터 접근하며, 뒤집기 a[s+i], a[e-i]=a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' ') Colored by Color Scripter cs