다라다라V
article thumbnail
[코테 알고리즘] 파이썬 기본 / 관련 문제

본 글은 "나동빈"님의 [이것이 코딩 테스트다]를 참고하여 작성하였으며, 필자가 직접 문제를 풀며 관련된 문제들을 찾아 정리하였습니다. 시리즈 보기 [코테 알고리즘] 파이썬 기본 / 관련 문제 [코테 알고리즘] 파이썬 주요 라이브러리 / 관련 문제 [코테 알고리즘] 그리디 / 관련 문제 [코테 알고리즘] 구현 / 관련 문제 [코테 알고리즘] DFS, BFS / 관련 문제 [코테 알고리즘] 정렬 / 관련 문제 [코테 알고리즘] 다이나믹 프로그래밍 / 관련 문제 [코테 알고리즘] 최단 경로 / 관련 문제 [코테 알고리즘] 그래프 이론 / 관련 문제 파이썬 기본 수 자료형 round 반올림 round(실수형 데이터, 반올림하고자 하는 위치 -1) 리스트 자료형 리스트 컴프리헨션 조건문과 반복문을 적용해서 리스..

article thumbnail
[백준] 19637번 파이썬 - 이분탐색, bisect

문제요약 (19637. IF문 좀 대신 써줘) 19637번: IF문 좀 대신 써줘 첫 번째 줄에는 칭호의 개수 N (1 ≤ N ≤ 105)과 칭호를 출력해야 하는 캐릭터들의 개수 M (1 ≤ M ≤ 105)이 빈칸을 사이에 두고 주어진다. (1 ≤ N, M ≤ 105) 두 번째 줄부터 N개의 줄에 각 칭 www.acmicpc.net 풀이를 위한 부연 설명 두 가지 방법으로 풀 수 있는 문제이기에 나눠서 작성하겠다. 이분탐색 각 칭호의 이름과 기준을 받아온다. 이때 중복되지 않는 값을 받아오도록 처리를 해야한다. 이후 입력받은 캐릭터의 힘이 기준치 어디에 포함되는지 확인한다. 인덱스 값을 기준으로 하여 이분탐색을 진행한다. bisect 이용 훨씬 간결하고 빠른 코드이다. bisect 이진 탐색을 쉽게 구현..

article thumbnail
[백준] 1654번 파이썬 - 이분탐색

문제요약 (1654. 랜선 자르기) 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 풀이를 위한 부연 설명 이분탐색을 이용하는 정석적인 문제이다. 원하는 개수의 랜선이 나왔다면 해당하는 길이보다 더 작게 잘라도 원하는 개수만큼의 랜선이 나오는지 탐색하고 아니라면 자르려는 길이를 수정한다. 코드 import sys input = sys.stdin.readline k, n = map(int, input().split()) lines = [int(input()) for _ in rang..

article thumbnail
[백준] 2800번 파이썬 - 스택, 조합

문제요약 (2800. 괄호 제거) 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 풀이를 위한 부연 설명 괄호의 위치를 스택을 통해 구현한다 각 괄호의 쌍을 뽑아내야하므로 스택을 사용한다. 괄호 쌍을 "포함한다/포함하지 않는다" 이 두 가지 경우에 대한 모든 수를 알아보기 위해 조합을 사용한다. 파이썬 itertools의 combinations를 이용해 경우의 수를 구한다. 여러 가지 같은 경우가 나올 수 있으므로 set()으로 답을 넣는다. 조합에 대한 자세한 개념 설명과 연..