본문 바로가기

파이썬알고리즘70

백준 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.
Baekjoon 2775 Python https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net Code case = int(input()) for _ in range(case): floor = int(input()) ho = int(input()) f_0 = [x for x in range(1, ho+1)] for _ in range(floor): for i in range(1, ho): f_0[i] += f_0[i-1] print(f_0[-1]) #1 Key Code f_0 = [x for x in range(1, ho+1)] .. 2022. 11. 20.
Baekjoon 5355 Python https://www.acmicpc.net/problem/5355 5355번: 화성 수학 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산 www.acmicpc.net Problem You are on planet jj and they do math a bit differently. Math is done using the following operators : @, %, and #. @ is multiply by 3. % is add 5. # is subtract 7. That is all they can do in terms of mat.. 2022. 11. 19.
백준 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.