파이썬(148)
-
백준 1517 파이썬 병합정렬 손풀이 플레티넘
백준 1517 - 버블 소트 문제 https://www.acmicpc.net/problem/1517 1517번: 버블 소트 첫째 줄에 N(1 ≤ N ≤ 500,000)이 주어진다. 다음 줄에는 N개의 정수로 A[1], A[2], …, A[N]이 주어진다. 각각의 A[i]는 0 ≤ |A[i]| ≤ 1,000,000,000의 범위에 들어있다. www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline result = 0 def merge_sort(s, e): global result if e - s < 1: return m = int(s + (e - s) / 2) merge_sort(s, m) # 재귀 함수의 형태로 구현 merge_sort(m + 1, e..
2024.02.22 -
백준 2751 파이썬 병합정렬
백준 2751 - 수 정렬하기 2 문제 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline print = sys.stdout.write def merge_sort(s, e): if e - s < 1: return m = int(s + (e - s) / 2) merge_sort(s, m) merge_sort(m + 1, e) for i in range(s, ..
2024.02.21 -
백준 11004 파이썬 퀵 정렬
백준 11004 - k번째 수 문제 https://www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline N, K = map(int, input().split()) A = list(map(int, input().split())) def quickSort(S, E, K): global A if S < E: pivot = partition(S, E) if pivot == K: # K번째 수가 pivot이면 더이상 구할 필요 없음 return..
2024.02.20 -
백준 11399 파이썬 삽입정렬 그리디
백준 11399 - ATM 문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 답안 코드 : N = int(input()) A = list(map(int, input().split())) S = [0]*N # 합 배열 for i in range(1, N): # 삽입 정렬 insert_point = i insert_value = A[i] for j in range(i-1, -1, -1): if A[j] 그리디 # N의 최대값이 1,000 그리고 시간제한 1초니까 n^2이하 ..
2024.02.19 -
백준 1427 파이썬 선택 정렬 사용
백준 1427 - 소트인사이드 문제 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 답안 코드 : import sys print = sys.stdout.write A = list(input()) for i in range(len(A)): Max = i for j in range(i + 1, len(A)): if A[j] > A[Max]: # 내림차순이므로 최댓값을 찾음 Max = j if A[i] 파이썬에서는 input 데이터를 list로 변환하면 자동으로 자릿수 나누어 리스트화 해준다. # ( 파이썬 짱 ) # 이번에도 그저 s..
2024.02.18 -
백준 2750 파이썬 정렬(sort함수 사용x) 직접 구현
백준 2750 - 수 정렬하기 문제 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 답안 코드 : N = int(input()) A = [0]*N for i in range(N): A[i] = int(input()) for i in range(N-1): for j in range(N-1-i): if A[j] > A[j+1]: temp = A[j] A[j] = A[j+1] A[j+1] = temp for i in range(N): print(A[i]) ..
2024.02.17