Algorithm

개발공부/algorithm

[백준][python] 1806.부분합 - 이분탐색

백준 1806 부분합 Gold IV 문제링크 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 나의 코드 N, S = map(int, input().split()) A = list(map(int, input().split())) sum_A = [0] * (N + 1) for i in range(1, N + 1): sum_A[i] = sum_A[i-1] + A[i-1] answer = 1000001 start = 0 end = 1 while start != N: if sum_A[end] - sum_..

개발공부/algorithm

[백준][python] 1931.회의실배정 - Greedy

백준 1931 회의실 배정 Silver II 문제링크 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 나의 코드 주어진 시작시간과 끝나는 시간을 1. 끝나는 시간의 오름차순 2. 시작하는 시간의 오름차순 으로 정렬해주어야한다. 그 후에는 각 회의의 끝나는 시간과 그 다음 회의의 시작 시간을 비교해주면서 카운트를 증가시켜주면 된다. import sys N = int(sys.stdin.readline()) meetings = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] meetings.sort(key = lambda x: (x[1], x[0])) cnt = ..

개발공부/algorithm

[백준][python] 16953 A->B - Greedy

백준 16953 A -> B Silver I 문제링크 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 나의 코드 BFS 키워드를 보고 바로 BFS로 구현했다. 주어진 테스트케이스는 통과했지만 제출했더니 시간초과가 났다.. BFS에서 방향을 정의해주는 것 대신 가능한 두 가지의 연산된 값에 대한 연산을 반복하는 식이다. # 시간초과 코드 import sys def bfs(num, B): q = [] q.append((num, 0)) while q: newnum, count = q.pop(0) calcnums = [(lambda x: x * 2)(newnum), int((lambda x: x + '1')(str(newnum)))] for ..

so.py
'Algorithm' 태그의 글 목록 (14 Page)