본문 바로가기

백준 파이썬 코딩

(49)
백준 1999 최대최소 파이썬 https://www.acmicpc.net/problem/1999 1999번: 최대최소 첫째 줄에는 세 정수 N, B, K가 주어진다. 다음 N개의 줄에는 행렬이 주어진다. 차례로 1행, 2행, …, N행이 된다. 각 줄에는 N개의 정수가 주어지며, 이는 차례로 1열의 성분, 2열의 성분, …, N열의 성 www.acmicpc.net 플레5 문제치고는 너무 쉬웠다... 이게 아직 데이터가 부족한 것인지 난이도 측정이 잘못된 것인지 아니면 파이썬이 개선돼 시간초과가 안나는 것인지 잘 모르겠지만 일단 AC를 받긴 받았다.. 처음에는 그냥 함수 하나 만들면 될거 같아 행과 열을 입력 받으면 그곳만 탐색해 최댓값 - 최솟값을 return해주는 함수를 만들어 출력해줬다. 당연히 처음부터 시간초과가 날것이라 생각했..
백준 1781 컵라면 파이썬 반례 O https://www.acmicpc.net/problem/1781 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net 처음 이 문제를 봤을때 그냥 우선순위 큐를써서 같은 데드라인 중에서 가장 큰 값을 제외한 나머지를 제거해 결과를 도출하면 되겠다고 생각해 그렇게 구현했다. import heapq import sys input= sys.stdin.readline n = int(input()) s=[] for _ in range(n): a,b = map(int,input().split()) heapq.heappush(s,(a..
백준 25425 운동회 파이썬 https://www.acmicpc.net/problem/25425 25425번: 운동회 첫째 줄에 $N, M, a, K$가 공백으로 구분되어 입력된다. $(1 ≤ N,M ≤ 10^9, 1 ≤ a ≤ N×M, 1≤ K ≤ M, K ≤ a)$ www.acmicpc.net n,m,a,k = map(int,input().split()) t=(a-k) #t는 준혁이 팀을 제외한 남은 인원 if t/n>=1: maxs = n #남은 인원 int(t/m)+ 1+1 print(maxs,mins)
백준 25426 일차함수들 파이썬 https://www.acmicpc.net/problem/25426 25426번: 일차함수들 첫째 줄에 일차함수의 개수 $N$이 주어진다. $(1≤N≤100,000)$ 둘째 줄부터 $N$줄에 걸쳐 $i$번째 일차함수를 나타내는 두 정수 $a_i, b_i$가 공백으로 구분되어 입력된다. $(0≤a_i, b_i≤ 10^9)$ www.acmicpc.net 정렬된 값을 문제에 맞게 계산해주면 되는 매우 간단한 문제 였다. import sys input = sys.stdin.readline t = int(input()) s=[] for _ in range(t): a,b = map(int,input().split()) s.append([a,b]) s.sort() re =0 for i in range(t): re+=..
백준 1015 수열 정렬 파이썬 https://www.acmicpc.net/problem/1015 1015번: 수열 정렬 P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주 www.acmicpc.net 문제에서 B[P[i]] = A[i]이라는 것을 착안해 아래와 같이 코드를 작성해줬다. n = int(input()) s=list(map(int, input().split())) re =s.copy()#정렬되기 전 배열 복사 s.sort()#정렬 dp =[0]*n#결과 저장해줄 리스트 for i in range(n): for j in range(..
백준 17140 이차원 배열과 연산 파이썬 *추가* https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 전 포스팅에서 R연산하고 C연산을 둘다 구현했는데 인터넷 서칭을 해보니 굳이 그럴 필요없이 zip(*s)를 통해 행과 열을 바꿀 수 있다는 것을 알았다... 이 방법을 사용하니 시간도 줄어들고 코드가 매우 간단해졌다. 오늘도 배워간다..(나중에 써먹어야겠다.) def R(s): #R연산을 해주는 함수 maxs=-1#행의 길이의 최댓값 for i in range(len(s)): s2=[..
백준 17140 이차원 배열과 연산 파이썬 https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 처음 이 문제를 봤을때 dic를 쓸까 생각했지만 사용하기 어려워 list와 set을 사용해 풀었다. 시간초과나 메모리초과가 나오는 것인지 떨리면서 제출했는데 생각보다 시간이 별로 안 걸려서 놀랐다. 여러 시행착오가 있었지만 AC받았다. 실수 1. dp배열에 크기를 작게 해줘서 index에러가 났다. K
백준 2417 정수 제곱근 파이썬 https://www.acmicpc.net/problem/2417 2417번: 정수 제곱근 정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오. www.acmicpc.net 처음 이 문제를 봤을때 그냥 제곱근을 사용하면 되겠다라고 생각해 math.sqrt 와 math.isqrt를 사용해 아래와 같이 코드를 만들었다. import math n=int(input()) if float(math.isqrt(n))== math.sqrt(n): #isqrt는 정수형을 내보낸다. print(math.isqrt(n))#math.isqrt(n)**2==n이라는 소리니(제곱수) 그대로 출력 else: print(math.isqrt(n)+1)#제곱수가 아닌 제곱근이 소수를 가지므로 +1해준 뒤 출력 하지만..