백준 45

백준 10870번: 피보나치 수열 5

알고리즘 관련 문제를 풀려고 찾아보다보면 재귀함수에 대한 이야기가 계속 나오는데 한 번도 제대로 써본 적이 없어서 풀게 된 문제 재귀함수는 함수 내에서 자기 자신을 다시 호출한다 정도로만 이해한 상태로 시작했다. 계속해서 자신을 호출하기 때문에 종료 조건이 필요하고 계산식이 있는 위치에 따라서 계산하는 값이 달라지는 것 같았다. 흐름을 따라가 보면 fi_n(3)이 입력이 되면 0보다 크므로 fi_n(3-1)이 실행이 되면서 다시 함수 첫 부분, fi_n(2)도 0보다 크므로 fi_n(2-1)이 실행이 되면서 다시 함수 첫 부분, fi_n(1)도 0보다 크므로 fi_n(1-1)이 실행 fi_n(0) 종료 조건이 충족되었고 앞에서 실행되었던 fi_n(1)에 마지막에 남아있는 print(n)실행후 fi_n(1..

백준 2023.08.08

백준 20365번: 블로그2 (파이썬)

n = int(input()) col = input() # 'B' 문자열을 모두 '-'로 바꿈 (없어도 될 듯) col_b = col.replace('B','-') # 바꾼 문자열을 기준으로 쪼개서 리스트에 담기 rr = col_b.split('-') # 위의 과정에서 공백값이 들어가서 공백값을 제거해줌 rr = list(filter(None, rr)) # 'B'를 먼저 칠하고 'R'을 칠했을 때 걸리는 작업 횟수 result_b = len(rr)+1 # 'R' 문자열을 모두 '-'로 바꿈 (없어도 될 듯) col_r = col.replace('R','-') # 바꾼 문자열을 기준으로 쪼개서 리스트에 담기 bb = col_r.strip().split('-') # 위의 과정에서 공백값이 들어가서 공백값을 ..

백준 2023.08.02

백준 1302번: 베스트 셀러 (파이썬)

처음에 틀린 이유 : 가장 많이 팔린 책이 여러개일 경우 사전 순으로 가장 앞서는 제목을 출력한다는 조건을 빼먹었다 # 2번째 시도 n = int(input()) book_list = dict() for i in range(n): book = input() if book in book_list: book_list[book] += 1 else: book_list[book] = 1 # 딕셔너리를 튜플의 형태로 빼서 책의 제목을 기준으로 오름차순 정렬 book_list = sorted(book_list.items(), key=lambda x: x[0]) # 책 제목을 기준으로 정렬된 튜플을 책의 개수로 내림차순 정렬 book_list = sorted(book_list, key=lambda x:x[1], rev..

백준 2023.08.01