본문 바로가기

알고리즘

(138)
[알고리즘] 백준 2529 부등호 / python https://www.acmicpc.net/problem/2529 2529번: 부등호 여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력� www.acmicpc.net #순열이 오름차순일때 사용하는 함수 def next_permu(a): i = len(a)-1 while i > 0 and a[i-1] >= a[i]: i -= 1 if i
[알고리즘] 백준 14889 스타트와 링크 / python https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net def next_permutation(a): n = len(a) - 1 i = n while i > 0 and a[i-1] >= a[i]: i -= 1 if i == 0: return False j = n while a[i-1] >= a[j]: j -= 1 a[i-1], a[j] = a[j], a[i-1] j = n while i < j: a[i], a[j] = a[j], a[i] i += 1 j -= 1 return..
[알고리즘] 백준 10974 모든 순열 / python, 순열 https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net def next_permutation(a): n = len(a) - 1 i = n while i > 0 and a[i-1] >= a[i]: i -= 1 if i == 0: return False j = n while a[i-1] >= a[j]: j -= 1 a[i-1], a[j] = a[j], a[i-1] j = n while i < j: a[i], a[j] = a[j], a[i] i += 1 j -= 1 return True a = [i+1 for i in range(int(input..
[알고리즘] 백준 1748 수 이어 쓰기 / python https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1≤N≤100,000,000)이 주어진다. www.acmicpc.net N = input() result = 0 for i in range(len(N)-1): result += 9 * (10**i) * (i+1) else: result += (int(N) - 10**(len(N)-1) + 1) * len(N) print(result)
[알고리즘] 백준 1107 리모컨 / python, 브루트포스 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼�� www.acmicpc.net N = int(input()) M = int(input()) if M != 0: B = list(input().split()) else: B = [] R = [str(i) for i in range(10) if str(i) not in B] result = abs(N - 100) for i in range(1000000): tf = True for s in str(i): if ..
[알고리즘] 백준 1439 뒤집기 / python, greedy https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net ✔ 풀이과정 예시의 0001100은 010으로 봐도 무방하다. 길이에 관계없이 문자가 바뀌는지만 보기 때문이다. 다음은 길이에 따라 최소 몇번 바꿔야하는지를 적은것이다. 0 과 1 👉 0번, 길이 1 01 👉 1번, 길이 2 010 👉 1번, 길이 3 0101 👉 2번, 길이 4 01010 👉 2번, 길이 5 010101 👉 3번, 길이 6 0101010 👉3번, 길이 7 이 규칙성을 따라서 코드..
[알고리즘] 백준 11055 가장 큰 증가 부분 수열 / python, dp https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수� www.acmicpc.net import copy N = int(input()) A = list(map(int, input().split())) dp = copy.deepcopy(A) for i in range(1, N): for j in range(i): if A[j] < A[i]: dp[i] = max(dp[i], dp[j]+A[i]) print(max(dp))
[알고리즘] 백준 16768 Mooyo Mooyo / python, dfs, simulation https://www.acmicpc.net/problem/16768 16768번: Mooyo Mooyo In the example above, if $K = 3$, then there is a connected region of size at least $K$ with color 1 and also one with color 2. Once these are simultaneously removed, the board temporarily looks like this: 0000000000 0000000300 0054000300 1054500030 220000 www.acmicpc.net ✔ 문제 설명 N = 행의 수 (열은 10으로 고정) K = 같은것이 K개일때 없앰 N=6, K=3일때를 예시로 들어보면..