본문 바로가기

분류 전체보기

(53)
백준 18310 안테나 파이썬 https://www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 모든 집까지의 거리의 총 합이 최소가 되는 경우를 구하는 것인데 최소가 되는 경우는 모든 집을 일렬로 나열했을때 중간에 있는 집을 고르는 경우이다. 따라서 n이 홀수일때는 s[n//2]을 출력해주면 되고 n이 짝수일때는 s[n//2]와 s[n//2-1]에 안테나를 설치 했을 경우에 합이 최소가 되는데 더 작은 값을 출력하라고 했으니 s[n//2-1]을 출력해주면 된다. n =int(input()) s = list(map..
백준 1769 3의 배수 파이썬 https://www.acmicpc.net/problem/1769 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net 문제에 나온 지문대로 코드를 만들면 되는 쉬운 문제였다. 한가지 주의할점이 있다면 시간초과 관련이다. or 시간 줄이기 n = input() c=0 while int(n)>=10: t = 0 for i in range(len(n)): t+=int(n[i]) n=str(t) c+=1 print(c) if int(n)%3==0: print("YES") else: print('NO') 위에 코드는 Pytho..
백준 12891 DNA 비밀번호 파이썬 https://www.acmicpc.net/problem/12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 처음에는 문제를 주어진 문자열 속에서 P개의 문자를 뽑아 비밀번호를 만든다로 해석을 잘 못해 조합을써서 풀었더니 시간초과를 맛봤다. 그래서 왜 시간초과가 나는지 이해 못 했고 다른 사람들 풀이를 보니 문제가 부분 문자열 즉 이어진 문자만 가능하다는 것이였다.. 이 사실을 알고 문제 분류에 맞게 슬라이딩 윈도우 방법으로 풀어봤다. 코드 설명을 간단하게 하자면 우선 꼭 들어가야..
백준 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(..