본문 바로가기

백준9

백준 2108 통계학 (파이썬) https://www.acmicpc.net/problem/2108 문제핵심1. 산술평균, 중앙값 최빈값, 범위 총 4가지 값을 구해야 한다.2. 최빈값을 구하는 방법을 잘 고려할 것(저는 dict를 사용했습니다) 풀이n = int(input())nums = []for i in range(n): nums.append(int(input()))#1.meanmean = round(sum(nums)/n)print(mean)#2.mediannums.sort()median = nums[n//2]print(median)#3.modedic = dict()for i in nums: if i in dic: dic[i] += 1 else: dic[i] = 1maxinum_mode_va.. 2024. 9. 23.
백준 2470 두 용액 (파이썬) https://www.acmicpc.net/problem/2470 문제핵심1. 음수 양수 상관없이 가까운 값을 찾는 것이기 때문에 절댓값을 이용해야겠다는 아이디어2. 정렬 후 왼쪽 끝과 오른쪽 끝을 정해두고 while left  팁1. 2e+9는 2 x 10^9를 나타낸다2. answer = [1, 2]와 같이 list로 되어있는 경우 *answer처럼 앞에 *(Asterisk)를 붙이면 괄호 안 내용은 1, 2로 출력된다. 풀이n = int(input())water = list(map(int, input().split()))water.sort() left = 0right = n - 1min_sum = 2e+9+1answer = [0, 0]while left 2024. 8. 28.
백준 10815 파이썬 (이진탐색, Binary Search) https://www.acmicpc.net/problem/10815 python의 in을 이용하여 풀려고 하면 시간초과가 나는 문제입니다. 문제에서 입력값이 "-10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다"라고 되어있기 때문에 이렇게 큰 수가 포함된 배열 문제는 이진탐색을 이용하면 좋습니다. 매 단계마다 범위를 절반으로 줄이기 때문입니다. 개념이진탐색(Binary Search)은 정렬된 배열이나 리스트에서 원하는 값을 효율적으로 찾는 알고리즘입니다. 이진탐색은 다음과 같은 방식으로 작동합니다:초기 설정: 배열의 시작 인덱스(left)와 끝 인덱스(right)를 설정합니다. 일반적으로 left는 0, right는 배열의 마지막 인덱스입니다.중간값 계산: 중간 인덱스(mid)를 .. 2024. 6. 14.
백준 2805 파이썬 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 처음 구현한 방법 : 시간 초과가 날걸 알면서도 다른 방법이 생각나지 않아 일단 코드를 작성하고 제출했다. 예제 코드는 돌아가지만 제출을 하니 역시 시간초과가 발생했다. n, m = map(int, input().split()) h = list(map(int,input().split())) maxchecker = max(h) - 1 minchekcer = m.. 2023. 12. 21.
백준 10816 파이썬 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 코드 n = int(input()) Ncard = sorted(list(map(int,input().split()))) m = int(input()) Mcard = list(map(int,input().split())) dic_count = {} for card in Ncard: if card in dic_count: dic_count[card] += 1 else.. 2022. 5. 26.
백준 11758 CCW 파이썬 https://www.acmicpc.net/problem/11758 11758번: CCW 첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다. www.acmicpc.net 코드 box = [] for _ in range(3): box.append(list(map(int,input().split()))) def ccw(p1,p2,p3): return (p1[0]*p2[1] + p2[0]*p3[1] + p3[0]*p1[1] - (p2[0]*p1[1] + p3[0]*p2[1] + p1[0]*p3[1])).. 2022. 5. 9.
백준 10845번 큐 (파이썬) https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 from sys import stdin n = int(input()) q = [] for i in range(n): cmd = stdin.readline().split() if cmd[0] == 'push': q.append(cmd[1]) elif cmd[0] == 'pop': if len(q) == 0: print(-1) else: print(q[0]) del q[0] el.. 2022. 4. 23.
20210810#(77) 백준 1514번 잃어버린 괄호 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net ○ 느낀 점 split() 함수를 생각보다 모르고 있었다는 것을 알게 됨 ○ 풀이 alist=input().split('-') num=[] for i in alist: cnt=0 s=i.split('+') for j in s: cnt+=int(j) num.append(cnt) n=num[0] for i in range(1,len(num)): n-=num[i] print(n) # 55-50+4.. 2021. 8. 10.
20210705#(61) 백준 11047 동전 0 (그리디) https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 그리디 문제 잼있다 이렇게 풀면 효율이 떨어지는 것 같긴 한데 일단 풀어봤다. n,k=map(int,input().split()) coin_list=[] coin_count=0 for i in range(n): coin_list.append(int(input())) coin_list.sort(reverse=True) for i in .. 2021. 7. 5.