백준 34

99클럽 코테 스터디 6일차 TIL + 이분탐색

https://www.acmicpc.net/problem/2805import sysinput = sys.stdin.readlinen, m = map(int, input().split())trees = list(map(int, input().split()))start = 0end = max(trees)answer = 0 # 절단기 높이while start mid: total += t - mid if total >= m: start = mid + 1 answer = mid else: end = mid - 1print(answer)m과 n의 범위를 보고 이분탐색을 생각할 수 있다.절단기 높이의 최댓값을 구하는 것이기 때문에 굳이 mi..

Algorithm/Problems 2024.11.03

[백준/파이썬] 15651번 N과 M(3)

https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import sys read = sys.stdin.readline def dfs(): if len(s) == m: print(' '.join(map(str,s))) return for i in range(1, n+1): s.append(i) dfs() s.pop() n, m = map(int, read().split()) s = [] dfs() 중복도 허용되므로 visited 관련된 코드를 제거..

Algorithm/Problems 2023.02.01

[백준/파이썬] 15650번 N과 M (2)

https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import sys read = sys.stdin.readline def dfs(): if (len(s) == m) and s == sorted(s): print(' '.join(map(str,s))) return for i in range(1, n+1): if visited[i]: continue visited[i] = True s.append(i) dfs() s.pop() visited[i]..

Algorithm/Problems 2023.02.01

[백준/파이썬] 15649번 N과 M (1)

https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import sys read = sys.stdin.readline def dfs(): if len(s) == m: print(' '.join(map(str,s))) return for i in range(1, n+1): if visited[i]: continue visited[i] = True s.append(i) dfs() s.pop() visited[i] = False n, m = map(i..

Algorithm/Problems 2023.02.01