practivceAlgorithm/백준 379

[백준][Python] 3783 세제곱근

부동소수점에 대한 이해 : https://thrillfighter.tistory.com/349 Python의 부동소수점 보정 decimal 모듈 : https://docs.python.org/ko/3/library/decimal.html import decimal # 천자리까지 정확도 주기 decimal.getcontext().prec = 1000 N = int(input()) for _ in range(N): # Decimal 객체를 만듬.(float, int같은) # 자릿수 10자리까지 정확하게 입력해줌. d = decimal.Decimal(input().rstrip() + '.0000000000') pow = decimal.Decimal('1') / decimal.Decimal('3') d = de..

[백준][Python] 15831 준표의 조약돌

슬라이딩 윈도우 import sys input = sys.stdin.readline N, B, W = map(int, input().split()) stone = input().rstrip() # 까만색 B개 이하, 흰색은W개 이상 left = 0 w_cnt = 0 b_cnt = 0 max_len = 0 for right in range(N): if stone[right]=='W': w_cnt += 1 else: b_cnt += 1 while b_cnt > B: if stone[left]=='W': w_cnt -= 1 else: b_cnt -= 1 left += 1 if w_cnt>=W: max_len = max(max_len,right-left+1) print(max_len)

[백준][Python] 16926 배열돌리기 1

배열돌리기..tmp 변수에 저장하고 나중에 넣어주는 식. 한번에 한칸씩 돌렸다. 여러개 한번에 가능한가? 가능할지도? import sys input = sys.stdin.readline def rotate(start): #init_tmp top = matrix[start][start] left = matrix[N-start-1][start] bottom = matrix[N-start-1][M-start-1] right = matrix[start][M-start-1] # top for i in range(start+1,M-start): matrix[start][i-1] = matrix[start][i] # left for i in range(N-start-1,start,-1): matrix[i][start..

[백준][Python] 16432 떡장수와 호랑이 : 백트래킹 설계.

checking을 어떻게 할것이냐? 그날 이떡을 먹었었다. 에 대한 체킹. 먹었었다면 굳이 다시 먹을 필요 없다. import sys input = sys.stdin.readline def DFS(cnt,dduks,yesterday): global answer if cnt == N: for d in dduks: print(d) exit() for dduk in days[cnt]: if dduk != yesterday and not ate[cnt][dduk-1]: ate[cnt][dduk-1] = True DFS(cnt+1, dduks + [dduk],dduk) N = int(input()) days = [] answer = [] for _ in range(N): m,*dduk = map(int, inpu..

[백준][Python] 6068 시간관리하기

각 업무의 limit마다 누적 시간 합과 limit을 비교해주면서 최솟값을 가져가면 된다. limit을 초과하면 즉시종료 import sys input = sys.stdin.readline N = int(input()) works = [list(map(int, input().split())) for _ in range(N)] works = sorted(works,key = lambda x: x[1]) total_time = 0 min_rest = float('inf') for time, limit in works: total_time += time min_rest = min(min_rest, limit-total_time) if limit < total_time: print(-1) exit() print..