본문 바로가기
728x90
SMALL

백준4

[백준] 16953번 : A → B (파이썬) BFS 문제 (1) 처음에 내가 생각한 방식 #BFS from collections import deque import math a,b=map(int,input().split()) queue = deque() count=[] ans=0 queue.append(a) index=0 while queue: index+=1 q = queue.popleft() if q==b: ans=math.ceil(math.sqrt(index)) break queue.append(q*2) queue.append(int(str(q)+str("1"))) print(ans) 처음에 이 문제를 보자마자 나는 위와 같은 방식으로 풀었다. 하지만, 예제 입력 1이나 예제 입력 3처럼 공백을 기준으로 입력 받은 왼쪽 값에서 오른쪽 값으로 .. 2023. 2. 4.
[백준] 19941번 : 햄버거 분배 (파이썬) 그리디 알고리즘 문제 ex) input 12 2 HPHPHPHHPPHP output 6 (1) 처음 내 코드 (실패) a,b=map(int,input().split()) ham = list(input()) # H P cnt=0 for i in range(len(ham)): if ham[i]=="P": change=False for j in range(i-b,i,1): if j=a: continue else: if ham[j]=="H": ham[j]="O" change=True cnt+=1 break if change==False: for j in range(i+b,i,-1): if j=a: continue else: if ham[j]=="H": ham[j]="O" change=True cnt+=1 bre.. 2023. 2. 3.
[백준] 11508번 : 2+1 세일 (파이썬) 그리디 알고리즘 문제 (1) 처음 내 코드 (성공) n=int(input()) price=[] cost=0 for _ in range(n): a=int(input()) price.append(a) price.sort(reverse=True) if len(price) 2023. 2. 2.
백준 1527 파이썬 (1) 처음 내 코드 -> 시간초과 a,b = map(int,input().split()) cnt = 0 s1="4" s2="7" for i in range(a,b+1): s = str(i) bool=True for j in s: if j==s1 or j==s2: continue else: bool=False break if bool==True: cnt+=1 print(cnt) 입력이 1보다 크고, 1,000,000,000보다 작거나 같은 자연수로, 코드 제출하기 버튼을 누르면서도 뭔가 시간초과가 날거 같았다. (2) 문제 해결 후 내 코드 -> product 사용 from itertools import product a,b = map(int,input().split()) cnt = 0 key = [] .. 2023. 1. 25.
320x100
LIST