Algorithm/Problems 94

99클럽 코테 스터디 7일차 TIL + 완전탐색

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfrom itertools import productdef solution(word): answer = 0 vowels = ['A', 'E', 'I', 'O', 'U'] dict = [] for i in range(1,6): for v in product(vowels, repeat=i): dict.append(''.join(v)) dict.sort() answer = dict..

Algorithm/Problems 2024.11.04

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

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

https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef solution(n, times): answer = 0 left = min(times) right = max(times) * n # 가장 오래걸릴 수 있는 경우 while left = n: # mid 시간 동안 심사 받은 인원이 n명이 넘으면 시간을 더 줄여도 됨 right = mid - 1 answer = mid else: left..

Algorithm/Problems 2024.10.31

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

https://www.acmicpc.net/problem/11561import sysinput = sys.stdin.readlinet = int(input())for _ in range(t): n = int(input()) start = 0 end = n result = 0 while start 징검다리를 1개, 2개, 3개, ... 1 차이로 건너야 최대한 많은 징검다리 수를 건널 수 있다.반드시 n번째 징검다리는 밟아야 하므로 1 + 2 + 3 + .... 가 n보다 작거나 같아야한다.등차수열의 합을 구하는 공식 : n(n+1) / 2mid가 우리가 구하는 target 값(최대한 많이 밟을 수 있는 징검다리 수)n의 최댓값이 10^16 으로 매우 크므로 완전탐색이 아닌 이분..

Algorithm/Problems 2024.10.30

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

[백준/파이썬] 1072 게임https://www.acmicpc.net/problem/1072 import sysinput = sys.stdin.readlinex, y = map(int, input().split())prevZ = y * 100 // xresult = 0if prevZ >= 99: result = -1else: start = 0 end = x while start prevZ: result = mid end = mid - 1 else: start = mid + 1print(result) 몇 번의 게임을 더 하더라도 승률 99에서 100은 나올 수 없으므로 if문 조건을 나눔처음엔 곱하기, 나누기 ..

Algorithm/Problems 2024.10.28

[백준/파이썬] 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