본문 바로가기

Algorithm 💡272

[백준 20164번] 홀수 홀릭 호석 20164번: 홀수 홀릭 호석 호석이는 짝수랑 홀수 중에서 이니셜이 같은 홀수를 더 좋아한다. 운전을 하던 호석이는 앞차의 번호판이 홀수로 가득할 때 사랑스러움을 느낄 정도이다. 전화번호도 홀수만 있고 싶다. 그렇게 www.acmicpc.net # 주어진 수 N ( maximum: maximum = new_count return elif len(num_str) == 2: # 3. 수가 두자리이면 2개로 나눠서 합을 구하여 새로운 수로 생각 new_num = int(num_str[0]) + int(num_str[1]) new_str = list(str(new_num)) dfs(new_str, odd_count + current_odd_count) elif len(num_str) >= 3: # 4. 수가 세.. 2023. 12. 28.
[백준 15721번] 번데기 15721번: 번데기 예를 들어 7명이 있고, 16번째 등장하는 “뻔”을 부른 사람의 번호를 알고 싶다면 입력은 7 16 0이다. 4명이 있고 6번째 등장하는 “데기”를 부른 사람의 번호를 알고 싶다면 입력은 4 6 1이며, 이 www.acmicpc.net # 뻔 - 데기 - 뻔 - 데기 - 뻔 - 뻔 - 데기 - 데기 # 뻔 - 데기 - 뻔 - 데기 (고정) + (뻔 x n) - (데기 x n) a = int(input()) # a 2023. 12. 28.
[백준 5052번] 전화번호 목록 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net import sys input = sys.stdin.readline t = int(input().rstrip()) for _ in range(t): n = int(input().rstrip()) cases = [] flag = True for _ in range(n): cases.append(input().rstrip()) cases.sort() # for i in range(len(cases)): # if flag: # break # f.. 2023. 12. 13.
[Algorithm] 재귀함수란 ? 재귀함수란 ? 함수 내부에서 ‘자기 자신을 호출’하는 함수를 의미합니다. 이를 통해서 함수가 자신을 반복적으로 호출하면서 원하는 결과를 도출할 수 있습니다. 단, 재귀함수를 사용하는 경우 함수 호출이 계속해서 쌓이게 되면 호출 스택이 많아져서 메모리 공간을 많이 차지하고, 성능이 저하될 수 있다는 단점이 있습니다. 따라서 재귀함수를 작성할 때는 무한 루프에 빠지지 않도록 종료 조건을 명확하게 설정해주어야 합니다. 대표적인 예로 팩토리얼 계산, 피보나치 수열 계산 등이 있습니다. 참고 : https://adjh54.tistory.com/194 [Java/알고리즘] 재귀 함수(Recursion Function) 이해하기 해당 글에서는 재귀함수에 대해 이해하며 다양한 예시와 재귀함수를 이용한 알고리즘을 기반으.. 2023. 11. 27.
[Algorithm] 시간복잡도 & 공간복잡도 자료구조란 ? 효율적으로 데이터를 저장하고 관리할 수 있는 데이터 집합 1. 복잡도 먼저 복잡도란 '알고리즘의 성능과 효율성을 나타내는 척도'입니다. 크게 시간 복잡도와 공간 복잡도로 나눌 수 있다. 알고리즘을 성능을 평가할 때 주로 수행 시간과 메모리 사용량을 기준으로 두는데, 이 중 수행 시간에 해당하는 것이 시간 복잡도이고 메모리 사용량에 해당하는 것이 공간 복잡도이다. 1-1. 시간 복잡도 시간 복잡도란 프로그램에서 특정 크기의 입력을 기준으로 할 때 수행되는 연산의 횟수를 나타낸다. 최선의 경우 (Best Case) 최적의 입력을 한 상태에서, 작업을 완료하는 데 필요한 연산 횟수 최악의 경우 (Worst Case) 최악의 입력을 한 상태에서, 작업을 완료하는 데 필요한 연산 횟수 평균의 경우 .. 2023. 11. 26.
[백준 1941번] 소문난 칠공주 1941번: 소문난 칠공주 총 25명의 여학생들로 이루어진 여학생반은 5×5의 정사각형 격자 형태로 자리가 배치되었고, 얼마 지나지 않아 이다솜과 임도연이라는 두 학생이 두각을 나타내며 다른 학생들을 휘어잡기 시작 www.acmicpc.net from itertools import combinations from collections import deque dx = [-1,1,0,0] dy = [0,0,-1,1] area = [list(input()) for _ in range(5)] positions = [] for i in range(5): for j in range(5): positions.append((i,j)) combs = list(combinations(positions,7)) answer .. 2023. 11. 22.