백준(188)
-
백준 10989 파이썬 메모리와 시간 초과 sort를 쓰지 않고 intput 대신 int(sys.stdin.readline())
백준 10989 - 수 정렬하기 3 문제 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 답안 코드 : import sys N = int(sys.stdin.readline()) # 아이디어는 수를 입력받으면서 바로 해당 위치에 출력 x = [0] * 10001 for _ in range(N): num = int(sys.stdin.readline()) x[num] += 1 # 횟수를 기록 # 해당 수의 등장 횟수만큼 출력 for i in range(10001): i..
2024.04.07 -
백준 2751 파이썬 시간초과 sys.stdin.readline()
백준 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 N = int(sys.stdin.readline()) x = [] for _ in range(N): x.append(int(sys.stdin.readline())) x.sort() for i in range(N): print(x[i]) 백준 / 문제 / 단계별로 풀어보기 / 13단계 정렬 생각 : N = int(i..
2024.04.06 -
백준 25305 파이썬
백준 25305 - 커트라인 문제 https://www.acmicpc.net/problem/25305 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 답안 코드 : N, k = map(int, input().split()) # x = [] # for i in range(N): # x.append(int(input())) x = list(map(int, input().split())) x.sort(reverse=True) cut_line = x[k - 1] print(cut_line) 백준 / 문제 / 단계별로 풀어보기 / 13단계 정렬
2024.04.05 -
백준 2587 파이썬
백준 2587 - 대표값2 문제 https://www.acmicpc.net/problem/2587 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 답안 코드 : x = [] for i in range(5): x.append(int(input())) x.sort() print(int(sum(x)/5)) print(x[2]) 백준 / 문제 / 단계별로 풀어보기 / 13단계 정렬 생각 : 파이썬은 정렬이 쉽다..
2024.04.04 -
백준 2750 파이썬, 단계별로 풀어보기 / 13단계 정렬
백준 2750 - 수 정렬하기 문제 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 답안 코드 : n = int(input()) L = [] for i in range(n): L.append(int(input())) L.sort() for i in range(len(L)): print(L[i]) 백준 / 문제 / 단계별로 풀어보기 / 13단계 정렬
2024.04.03 -
백준 2839 파이썬, 브루트포스
백준 2839 - 설탕 배달 문제 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 답안 코드 : n = int(input()) if n % 5 == 0: # 5으로 나눠떨어질 때 print(n // 5) else: p = 0 while n > 0: n -= 3 p += 1 if n % 5 == 0: # 3kg과 5kg를 조합해서 담을 수 있을 때 p += n // 5 print(p) break elif n == 1 or n == 2: # 설탕 봉지만으로 ..
2024.04.02 -
백준 1436 파이썬, 브루트 포스(Brute Force)
백준 1436 - 영화감독 숌 문제 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 답안 코드 : # N번째 종말의 수를 찾는 함수 def find_apocalypse_number(N): count = 0 # 찾은 종말의 수 개수 num = 666 # 시작 수 while True: if "666" in str(num): # 만약 수에 '666'이 포함되어 있다면 count += 1 # 종말의 수 개수를 증가시킴 if count == N: # ..
2024.04.01 -
백준 2231 파이썬, list(map(int, str(i)))
백준 2231 - 분해합 문제 https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 답안 코드 : n = int(input()) result = 0 for i in range(1, n+1): nums = list(map(int, str(i))) # 198 -> [1,9,8] result = sum(nums) + i # 18+ 198 if result == n: # 216 = 216 print(i) #198 break if..
2024.03.31 -
백준 2798 파이썬, ValueError: invalid literal for int() with base 10: '&'
백준 2798 - 블랙잭 문제 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 답안 코드 : n, m = map(int, input().split()) arr = list(map(int, input().split())) res = [] for i in range(n): for j in range(i + 1, n): for k in range(j + 1, n): sum = arr[i] + arr[j] + arr[k..
2024.03.30 -
백준 24313 파이썬
백준 24313 - 알고리즘 수업 - 점근적 표기 1 문제 https://www.acmicpc.net/problem/24313 24313번: 알고리즘 수업 - 점근적 표기 1 f(n) = 7n + 7, g(n) = n, c = 8, n0 = 1이다. f(1) = 14, c × g(1) = 8이므로 O(n) 정의를 만족하지 못한다. www.acmicpc.net 답안 코드 : a1, a0 = map(int, input().split()) c = int(input()) n0 = int(input()) if (a1 * n0 + a0
2024.03.29