본문 바로가기

전체 글95

[python 백준 1439] 뒤집기 📜 접근 방법 주어진 숫자를 보고 두가지로 나눴다. 1. 모든 숫자를 0으로 뒤집을 경우 (ex)000000) 2. 모든 숫자를 1로 뒤집을 경우 (ex)111111) 위의 경우를 보고 첫번째의 경우: 1이면 count + 1 두번째의 경우 : 0이면 count + 1 단, 이전 숫자가 현재 숫자와 같으면 count하지 않는다. (연속되는 수가 같을 경우) ex) 0001100 첫번째 경우 4번째(1)에서 count한다. 5번째(1)에선 이전 숫자(1)가 같기 때문에 count 안한다. => 총 1번 두번째 경우 첫번째(0)에서 count한다. + 1 두번째, 세번째에선 count 하지 않음(이전 숫자와 같으니 이미 count가 되어있음) 6번째(0)에서 count한다. + 1 6번째(0)에서 count.. 2023. 1. 25.
[python 백준 9358] 순열 접기 게임 📜 접근 방법 양 끝의 수를 더하되 리스트의 갯수가 2개가 아닐 때까지 더한다. 리스트의 갯수가 홀수일 경우 가운데 있는 수를 2번 더해야한다. 리스트의 갯수가 2개일 경우 while문을 종료하고 숫자 비교후 출력 ❌ 실패 코드 시간 초과 import sys def fold(arr): new_arr = [] i = 0 j = len(arr) - 1 while i new_arr[1]: print("Case #", i, ": Alice", sep="") else: print("Case #", i, ": Bob", sep="") 다른 분이 한걸 보니 재귀로 돌려서 위의 코드에서 재귀로 변경 ✅ 정답 코드 import sys def fold(arr): if len(arr) == 2: return arr new_.. 2023. 1. 17.
[python 백준 5052] 전화번호 목록 접근 방법 숫자 갯수가 작은 순으로 정렬 문자열로 변환 정렬된 순서로 특정 전화번호와 다른 전화번호들을 비교(특정 전화번호 갯수까지 잘라서 그부분만 비교) 같을 경우 YES 출력 후 종료 다를 경우 3번 반복 실패 코드(시간초과) import sys t = int(sys.stdin.readline()) for i in range(t): n = int(sys.stdin.readline()) phone_list = [int(sys.stdin.readline()) for i in range(n)] phone_list.sort() phone_list = list(map(str, phone_list)) index = 0 check = 0 while index < n - 1: if check: break phone.. 2023. 1. 16.
[python 백준 13904] 과제 📜 접근 방법 날짜순으로 오름차순 정렬 제일 긴 마감일 찾기 그 날로부터 가능한 과제 중 제일 높은 점수 고르기 모든 과제 : [1, 20], [2, 50], [3, 30], [4, 60], [4, 40], [4, 10], [6, 5] 6일째에 수행 가능한 과제 : [6, 5] 5일째에 수행 가능한 과제 : X 4일째에 수행 가능한 과제 : [4, 60], [4, 40], [4, 10] 3일째에 수행 가능한 과제 : [3, 30], [4, 40], [4, 10] 2일째에 수행 가능한 과제 : [2, 50], [3, 30], [4, 10] 1일째에 수행 가능한 과제 : [1, 20], [3, 30], [4, 10] 최대 총 점수 : 185 ❌1일차 부터 하면 안되는 이유! 모든 과제 : [1, 20], [.. 2023. 1. 15.