반응형 코테4 [class2]백준 4779번(칸토어 집합) - 코딩테스트 22일차(2025.02.12) 문제유형재귀 함수풀이 방법 도출 과정1. 3^N 개가 있는 문자열을 만든다.2. 문자열을 3등분 한 뒤 가운데 문자열을 공백으로 바꾼다.3. 나머지 2개를 3등분하고 가운데를 공백으로 바꾼다.4. 모든 선의 길이가 1이면 멈춘다.5. 이걸 출력하는 프로그램을 만들면 된다.6. 이걸 재귀함수로 만들어보도록 하겠다. 시간 복잡도각 단계에서 N만큼의 문자열 결합 연산이 발생.재귀적으로 N/3 크기의 문제를 두 번 호출.즉, O(N/3)이 시간복잡도 코드 및 간단설명재귀함수를 사용하여 문제를 풀었다. def line_one(N): if N == 1: return '-' prev = line_one(N // 3) space = ' ' * (N // 3) return.. 2025. 2. 13. [class2]백준 1654번(랜선 자르기) - 코딩테스트 22일차(2025.02.12) 문제유형이분 탐색풀이 방법 도출 과정1. 이 문제는 단순한 구현 문제처럼 보일 수 있지만, 이를 구현하는 방식에 따라 시간 복잡도가 커질 수 있다. 2. 따라서, 문제를 해결할 수 있는 더 효율적인 방법을 찾아야 한다. 이를 위해 이분 탐색을 활용하는 방식으로 접근하려 한다. 3. 이분 탐색을 적용하기 위해, 첫 번째로 left를 1로 설정하고, right는 주어진 랜선들의 길이 중에서 가장 긴 값으로 설정한다. 이렇게 설정하는 이유는 랜선 길이가 1부터 가장 긴 값까지 범위 안에 존재하기 때문이다. 3. 그 다음, 중간값인 mid를 계산한다. 그리고 mid 길이로 랜선을 나누었을 때, 얻을 수 있는 랜선의 개수가 주어진 N개 이상이 되는지 확인한다. 이 조건을 만족하는지 여부에 따라 이분 탐색을 반복하.. 2025. 2. 12. 코딩테스트 16일차(2025.02.02) - 백준11720번(숫자의 합) 내 풀이첫재줄에 숫자의 갯수두번째줄에 주어진 값 주어진 값들을 다같이 더하는 코드를 작성. 단, 주어진 값들은 공백이 없기에 주의count = int(input())numbers = list(input())for i in range(count): numbers[i] = int(numbers[i])print(sum(numbers))이번에 내가 한 풀이는 일단은 문자열을 받는 대신 문자열 리스트로 값들을 받고 리스트에 있는 값들을 int로 바꾸어 답을 구하였다.결과: 정답또 다른 풀이num = input()numbers = list(map(int,input()))print(sum(numbers)) [BAEKJOON]백준 11720번: 숫자의 합 파이썬문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를.. 2025. 2. 2. 코딩테스트 8일차(2025.01.22) - 25314번(코딩은 체육과목 입니다) 내 풀이long int -> 4바이트 long long int -> 8바이트 나눗셈을 사용하는 반복문을 사용해야겠다. # 받아주는 값A = int(input())# long 갯수 구하기count = A // 4 # long 구하기result = count * "long "#결과print(f"{result}int")결과: 정답더 옳은 정답n = int(input())print("long " * (n//4 - 1) + "long int") 더 간결하고 가독성있게 하는 방법은 위와 같은 방법이다. 항상 가독성, 간결성을 생각하도록 하자 고찰실제로 위와 같은 질문을 면접에서 하면 어떻게 반응해야할까? C++에서 정수 자료형의 크기는 다음과 같이 처리된다: 4바이트가 필요한 경우: long int8바이트가 필요한.. 2025. 1. 22. 이전 1 다음 반응형