본문 바로가기

전체 글41

[시간초과][백준] #1074 Z www.acmicpc.net/problem/1074 def solve(n, x, y): global result if n == 2: if x == X and y == Y: print(result) return result += 1 if x == X and y + 1 == Y: print(result) return result += 1 if x + 1 == X and y == Y: print(result) return result += 1 if x + 1 == X and y + 1 == Y: print(result) return result += 1 return solve(n/2, x, y) solve(n/2, x, y+n/2) solve(n/2, x+n/2, y) solve(n/2, x+n/2, y+n/.. 2020. 10. 29.
[백준] #2747 피보나치 수 www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된 www.acmicpc.net n = int(input()) mem = [0]*(n+1) def F(num): if mem[num] > 0: return mem[num] if num == 0 or num == 1: return num mem[num] = F(num-1) + F(num-2) return mem[num] print(F(n)) * 재귀함수를 이용해서 풀었다 n = int(input()) a, b .. 2020. 10. 28.
[백준] #10989 수 정렬하기 www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net * 개수는 무수히 많고 범위가 정해져있는 경우 계수정렬을 이용하여 문제를 푼다 a = [0] * 10001 res = [] n = int(input()) for _ in range(n): a[int(input())] += 1 for i in range(10001): if a[i] == 0: continue for _ in range(a[i]): print(i) * 기존input() 함수를 사용하면 시간초과 에러가 발생한다 imp.. 2020. 10. 28.
[백준] #11650 좌표 정렬하기 www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net n = int(input()) a = [] for _ in range(n): a.append(tuple(map(int, input().split(' ')))) a = sorted(a) for x, y in a: print(x, y) 2020. 10. 28.