[백준 알고리즘] 16987번: 계란으로 계란치기 (Python / 파이썬)
·
알고리즘/백준
문제 링크 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱 www.acmicpc.net 문제 접근 치는 계란과 맞는 계란을 잘 다뤄야 한다. 치는 계란은 항상 왼쪽 첫 번째 계란이고, 이 계란이 깨지면 다음 계란이 치는 계란이 된다. 재귀를 하면서 배열 자체에서 깨진 계란을 삭제해 버리면 복잡해지므로 알고리즘 내에서 조건으로 깨짐 여부를 체크하고 그에 따라 처리해준다. 정답 코드 # 16987번: 계란으로 계란치기 import sys def count(eggs): cnt = 0 for i in eggs: if i[0]
[백준 알고리즘] N과 M (12) (Python / 파이썬)
·
알고리즘/백준
문제 링크 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 접근 set과 정렬을 이용해서 중복된 수가 없는 오름차순을 만들어주고 순서대로 함수를 호출하고 내부적으로 재귀호출한다. 정답 코드 # 15666번: N과 M (12) import sys def func(select): if len(select) == m: print(*select) return for j in range(len(a)): if a[j] >= select[-1]: select.append(a[j]) func(select) selec..
[백준 알고리즘] 1759번: 암호 만들기 (Python / 파이썬)
·
알고리즘/백준
문제 링크 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 문제 접근 재귀함수를 만들어 해결하였다. 암호의 길이가 L이고 알파벳순으로 암호가 나와야 하기 때문에, 문자가 C개 주어진다면 문자열을 순회하며 인덱스가 L-C+1인 것까지 탐색하며 재귀함수를 호출한다. L = 4, C = 6 a t c i s w 다음과 같이 주어진다면 먼저 이것을 정렬하여 알파벳순으로 만들면 a c i s t w 정렬된 상태에서 0 ~ L-C+1 인덱스를 탐색하면 a 또는 c 또는 i 로 시작하는 알파벳순의 문자열만을 만들 수 있다. (..
[백준 알고리즘] 6603번: 로또 (Python / 파이썬)
·
알고리즘/백준
문제 링크 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 정답 코드 # 6603번: 로또 import sys def func(select): if len(select) == 6: print(*select) return for i in range(1, len(s)): if s[i] not in select and select[-1]
[백준 알고리즘] 15649번: N과 M(1) (Python / 파이썬)
·
알고리즘/백준
정답 코드 #15649번: N과 M(1) import sys def find_sequence(select): if len(select) == m: print(*select) for i in range(1, n+1): if i not in select: select.append(i) find_sequence(select) select.pop() return n, m = map(int, sys.stdin.readline().split()) find_sequence([]) 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc...