본문 바로가기

백준99

잃어버린 괄호 - 백준 1541 괄호를 적절히 배치하여 계산결과가 가장 작은 수가 나오도록 해야한다. "-" 가 나오면 다시 "-" 가 나올 때까지 괄호를 쳐서 계산을 해주면 가장 작은 수가 나올 수 있다. a = input() parsing = [] b = 1 # 1 : 덧셈, -1 : 뺄셈 j=0 num = '' for i in a: j+=1 if i !='-' and i!='+': num +=i elif i == '+' and b == 1: parsing.append(int(num)) num = '+' elif i == '+' and b == -1: parsing.append(int(num)) num = '-' elif i == '-': parsing.append(int(num)) num = '-' b = -1 if j == le.. 2022. 6. 22.
카드 정렬하기 - 백준 1715번 카드를 묶는 순서를 우선순위 큐로 생각하여 문제를 해결한다. 5 묶음의 카드가 10, 20, 30, 40, 50 장 있다고 생각해 보자 가장 작은 수 2개를 묶은 뒤 비교횟수에 더하고 다시 가장 작은 수 2개를 묶은 뒤 비교횟수에 더하는 행위를 카드 묶음이 1개가 남을 때 까지 반복해준다. 10 20 30 40 50 (묶기) result : 0 30 30 40 50 (묶기) result : 0 + 30 60 40 50 (묶기) result : 30 + 60 60 90 (묶기) result : 90 + 90 150 (묶기) result : 180 + 150 150 (완료) result : 330 파이썬의 heapq를 이용하면 이 과정 그대로 진행해주면 되고, 배열만 이용하여 문제를 해결하게 되면 3번째 부.. 2022. 6. 21.
단지번호붙이기 - 백준 2667번 문제에 설명에 나와있듯이 1은 집이 있는 곳을 나타내고 0은 집이 없는 곳을 나타낸다. x축과 y축을 그려서 각 집마다 좌표를 구한다. 집이 있는 좌표만 배열에 담아서 DFS를 통해 문제를 해결할 수 있다. n = int(input()) arr = [] for _ in range(n): p = input() arr.append(p) x = 0 y = 0 cordinate = [] for i in arr: for j in i: if j == '1': cordinate.append([x,y]) x+=1 y+=1 x=0 # print(cordinate) def search(mainList): # 입력받은 배열이 비어있으면 종료 if mainList == []: return 'end' villageCount =.. 2022. 6. 18.