728x90

알고리즘 공부(C++) 83

백준 1541 잃어버린 괄호

1541번: 잃어버린 괄호 (acmicpc.net) 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net nums = input().split('-') temp = 0 for i in range(len(nums)): if '+' in nums[i]: s = map(int, nums[i].split('+')) for j in s: temp = temp + j nums[i] = temp else: nums[i] = int(nums[i]) temp = 0 result = nums[0] for i in range(1..

4948 베르트랑 공준

4948번: 베르트랑 공준 (acmicpc.net) 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net import math import sys result = 0 lst = [] def isPrime(num): if num == 1: return False elif num == 2: return True else: for j in range(2, int(math.sqrt(num)) + 1): if num % j == 0: return False return True for i in range(2, 246..

백준 10814 나이순 정렬

10814번: 나이순 정렬 (acmicpc.net) 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net import sys N = int(sys.stdin.readline()) lst = [] for _ in range(N): a, b = input().split() lst.append([a, b]) lst.sort(key = lambda x : int(x[0])) for i in lst: print(i[0], i[1]) 간단한 문젠데 자꾸 틀렸습니다라고 뜬 이유 = lst[0] 의 항목들을 str -> int로 바꿔주..

2798 블랙잭

2798번: 블랙잭 (acmicpc.net) 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net N, M = map(int,input().split()) lst = list(map(int, input().split())) result = 0 for i in range(N): for j in range(i + 1, N): for k in range(j + 1, N): if lst[i] + lst[j] + lst[k] result: result = lst[i] + lst[j] + ls..

백준 1010 다리놓기

1010번: 다리 놓기 (acmicpc.net) 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net T = int(input()) lst = [] num1, num2 = 1, 1 for _ in range(T): N, M = map(int, input().split()) for i in range(N): num1 = num1 * (M - i) num2 = num2 * (N - i) lst.append(int(num1 / num2)) num1, num2 = 1, 1 for i in lst: print(i) 그냥 예..

백준 15649 N과 M(1)

15649번: N과 M (1) (acmicpc.net) 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 첫 백트래킹(DFS) 문제였다. 처음이어서 답을 참고했지만 다음부턴 스스로 풀도록 하자....... N,M = map(int, input().split()) visited = [False] * N lst = [] def dfs(depth): if depth == M: print(' '.join(map(str, lst))) return for i in range(N): if not visited[i]: vis..

1018 체스판 다시 칠하기

1018번: 체스판 다시 칠하기 (acmicpc.net) 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 브루트포스 문제로, 조건이 다소 까다로웠던 문제.. N, M = map(int, input().split()) lst = [] count = [] for i in range(N): lst.append(list(input())) for a in range(N - 8 + 1): for b in range(M - 8 + 1): state = 0 state2 = 0 for i in range(a, a + ..

2477 참외밭

2477번: 참외밭 (acmicpc.net) 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net N = int(input()) lst=[] x, y = 0, 0 for i in range(6): a, b = map(int, input().split()) lst.append([a, b]) for i in range(6): if lst[i][0] == 4 or lst[i][0] == 3: if lst[i][1] > y: y = lst[i][1] elif lst[i][0] == 2 or lst[i][0] == 1: ..

1181 단어 정렬

1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net N = int(input()) lst = set() lst2 = [] lst3 = [] max = 0 for i in range(N): lst.add(input()) for i in lst: lst2.append(i) lst2.sort() for i in range(20001): for j in lst2: if len(j) == i: lst3.append(j) if len(lst3) == len(lst)..

11650 좌표 정렬하기

11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net import sys N = int(input()) lst = [] for i in range(N): a,b = map(int,input().split()) lst.append([a,b]) lst.sort() for i in range(N): print(lst[i][0],lst[i][1]) 거의 맞았는데 오류난 문제... 이유는? map(int, input()..

728x90