Loading...

[Python] BOJ 1759 - 암호 만들기

https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net # 이전에 푼 로또문제와 똑같다. # 단지 answer에 들어간 후보들 중 자음과 모음의 개수를 구해 자음이 2개이상, 모음이 1개이상인 후보들만 출력해주면 된다. import sys input = sys.stdin.readline def BT(prev, len, letters): if len == L: answer.append(letters.copy()) return for i in range(pre..

[Python] BOJ 6603 - 로또(Lotto)

https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net # 백트래킹 문제이다. # k와 숫자들 num을 입력받은 뒤, BT함수로 백트래킹을 실행한다. # BT함수에서 len이 6이면, 숫자6개를 모두 뽑았으므로 answer에 nums.copy()를 append해주고 함수를 종료한다. # 이미 뽑은 숫자를 또 뽑을 수 없으므로, prev변수를 통해 현재 뽑은 숫자의 다음 인덱스부터 nums에 append되도록 했다. import sys inp..

[Python] BOJ 14888 - 연산자 끼워넣기

https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net # 삼성SW 역량테스트 기출문제이다. (백트래킹) 1. N과 숫자들 A를 입력받고 덧셈, 뺄셈, 곱셈, 나눗셈의 연산 갯수도 입력받는다. 2. BT(add, sub, mul, div, A[0], 1)을 실행한 뒤, max(answer)와 min(answer)를 출력한다. # BT함수: a. 종료조건: 모든 연산갯수가 0이라면 answer에 r..

[Python] BOJ - N과 M 시리즈

https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net # N과 M (1) 문제에서 중복된 수열들을 출력하지 않고, 각 수열은 오름차순이어야 하는 조건이 추가된 문제이다. # prev변수를 통해 중복된 수열을 출력하지 않는 방법은 다음과 같다. ex) 처음에 prev가 0이므로 for문에서 comb에 1을 넣고 BT(1, 1, [1])을 호출한다. BT(1, 1, [1])에서 prev가 1이므로 for문에서 i가 2부터 N-1까지 돈다. 따라서 co..

[Python] Leetcode - Combination Sum

https://leetcode.com/problems/combination-sum/ Combination Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com # 요즘 연습하고 있는 백트래킹 문제이다. candidates의 수들 중 합이 target인 배열을 return하는 문제이다. # 6번째 줄에서 comb를 바로 append하면 안되고, comb.copy()를 append해줘야 answer에 값이 제대로 들어간다. class Solution: def c..

[Python] LeetCode - Letter Combinations of a Phone Number

https://leetcode.com/problems/letter-combinations-of-a-phone-number/ Letter Combinations of a Phone Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com # 외국 문제풀이 사이트인 LeetCode문제이다. 영어문제를 해석하면서 풀어야해서 영어실력 증진에도 도움이 되는 것 같다. # '백트래킹' 기초를 연습하기 위해 푼 문제이다. # class와 letterCombination..