본문 바로가기

알고리즘/백준

(64)
[BOJ] [Python] 2839번 : 설탕 배달 num = int(input()) tmp = num // 5 def sugar(num, tmp): if(num % 5 == 0): return num // 5 else: while(tmp != 0): if((num - tmp * 5) % 3 == 0): tmp += (num - tmp * 5) // 3 return tmp else: tmp-= 1 if(num % 3 == 0): return num // 3 else: return - 1 print(sugar(num, tmp))
[BOJ] [Python] 1748번 : 수 이어 쓰기 1 예를 들어, 입력값이 1234라고 한다면 1000부터 1234까지는 모두 4자리 수기 때문에, 4자릿수 (1234 - 1000 + 1)개를 미리 처리했다. 그리고 나머지는 그 수가 무엇이든, 자릿수에 따라 9 * 1, 9 * 10, 9 * 100 ... 개로 예상을 벗어나지 않기 때문에, 아래는 저렇게 처리했다. + 한 자릿수는 따로 처리 해줘야 한다. (한 자릿 수일 경우, 입력 값 그대로 출력하면 된다.) num = int(input()) len_fir = (num - int('1' + ('0' * (len(str(num)) - 1))) + 1) * len(str(num)) if(len(str(num)) == 1): print(num) else: num = str(num)[1:] len_aft = 0..
[BOJ] [Python] 1449번 : 수리공 항승 구멍을 완전히 막으려면 양쪽 0.5cm씩 더 막아야 해서, 소수점을 신경써야했다. 그러나 구멍위치와 테이프 길이가 모두 정수형이기 때문에, 테이프 길이를 -1하고 구멍의 위치만 신경쓰기로 했다. i번째 구멍 + ( l - 1)을 할 경우 i번째 구멍으로부터 테이프의 끝 위치를 알 수 있다. n, l = map(int, input().split()) hole = list(map(int, input().split())) hole.sort() now_hole = 0 count = 0 for i in hole: if(now_hole < i): count += 1 now_hole = i + l - 1 print(count) + 마지막에 count += 1을 해야 한다. (마지막 구멍) n, l = map(int,..
[BOJ] [Python] 16953번 : A → B #시간 초과 num = input().split() a = int(num[0]) b = int(num[1]) def find_b(a, b): count = 1 while(b != a): # A와 일치하는가? check_box = [b] if(b % 2 == 0): # 2로 나누어지는가? go_while = 0 while(check_box[len(check_box)-1] % 2 == 0): print(check_box) check_box.append(check_box[len(check_box)-1] // 2) for ready_num_b in range(len(check_box)): if(check_box[ready_num_b] < a): # A보다 작은가? if(ready_num_b-1 != -1): #..