본문 바로가기

파이썬13

백준 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.
백준 6603 파이썬 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net def dfs(start, depth): if depth == 6: for i in range(6): print(answer[i], end=' ') print() return for i in range(start, len(S)): answer[depth] = S[i] dfs(i + 1, depth + 1) answer = [0 for i in range(13)] while 1: S = .. 2023. 2. 6.
백준 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.
백준 10250 파이썬 https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 코드 a = int(input()) for i in range(a): h, w, n = list(map(int,input().split())) floor = n%h num = n//h+1 if n%h == 0: floor = h num = n//h print(floor*100 + num) 풀이 층과 호실을 구하는 건 쉽게 구할 수 있을 것이다. 하지만 n % h == 0 일 때 층과 .. 2022. 5. 15.
백준 10866 (duque) 파이썬 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 from collections import deque import sys box = deque() n = int(input()) for i in range(n): # tmp = list(input().split()) tmp = sys.stdin.readline().split() if tmp[0] == 'push_front': box.appendleft(tmp[1]) elif .. 2022. 5. 10.
백준 2164 (deque) 파이썬 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 코드 from collections import deque n = int(input()) box = deque() count = 0 for i in range (n): box.append(i + 1) while len(box) != 1: count += 1 if count % 2 == 1: box.popleft() else: box.append(box.popleft()) print(box[0]) .. 2022. 5. 9.
백준 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.
백준 1605 한수 (파이썬) https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net ○ 풀이 def hansu(n): count = 0 if n ['1','2','3']) if n_split[0] - n_split[1] == n_split[1] - n_split[2]: # 등차수열 확인 (한수 조건) count += 1 return count n = int(input()) print(hansu(n)) ○ 배운 점 코드를 꼼꼼히 확인하는 습관을 기르자. 처음에 8번째 줄 코드에서 n_.. 2021. 8. 30.