본문 바로가기

프로그래밍 언어/백준 문제 풀이6

[백준]브루트 포스 브루트 포스, Brute Force: 검색 대상이 되는 원본 문자열의 처음부터 끝까지 차례대로 순회하며 문자들을 일일이 비교하는 알고리즘 시간 복잡도 :O(mn) , m: 찾으려는 문자열 길이, n: 총 문자열 길이장점 및 단점:구현하기 쉬우나 시간적으로 매우 비효율적임 #2798. 블랙잭 https://www.acmicpc.net/problem/2798 문제 설명:세 장의 카드를 고르는 모든 경우를 고려하는 문제풀이:브루트 포스에 따라 세 개의 제어인자를 생성하여 set을 통해 합의 집합을 생성한 후 조건 내 가장 큰 수 pickN, M = map(int, input().split())numbers = list(map(int, input().split()))sum_set = set()for i in r.. 2024. 6. 1.
[백준] #11653.소인수분해 #11653. 소인수분해문제 설명:N을 소인수분해하는 문제   오답노트:문제 풀이과정에서 범위가 N까지의 소수 리스트를 만들어 첫 시도는 시간초과되었으며 두 번째도 간단한 코드를 구현하였으나 채첨시간이 매우 오래걸렸다. - 두 번째 시도:성공하였으나 시간이 오래 걸림(1156ms)N = int(input())if N > 1: for i in range(2, N+1): while N % i == 0: N = N // i print(i)- 최종코드(다른 코드 참조, 40ms)N = int(input())for i in range(2, int(N**0.5)+1): while N % i == 0: print(i) N //= iif N > 1: prin.. 2024. 5. 29.
[백준] #2444.별 찍기 - 7 for문 속 n은 제어인자와는 무관한 반복인자로 설정하였다.모형의 상부는 n번 실행되고 하부는 n-1번 실행하도록 설정한다.n에서 제어인자 i를 증감함에 따라서 공백과 별의 출력횟수를 결정한다.하지만 comma로 이은 인자 두개를 출력하는 경우 자동적으로 공백이 생긴다는 것을 인지하지 못하여 많은 시간 내가 의도한 공백보다 하나 더 많이 출력되었다.이 문제는 print문의 sep= 기능을 이용하여 인자 사이의 공백을 없애고 출력한 결과 잘 작동하는 것을 알 수 있다. N = int(input())i = 0for n in range(N): i += 1 print(" " * (N - i), "*" * (2 * i - 1),sep='')for n in range(N - 1): i -= 1 .. 2024. 5. 8.
[백준] #2458. 가로수 문제 문제 직선으로 되어있는 도로의 한 편에 가로수가 임의의 간격으로 심어져있다. KOI 시에서는 가로수들이 모두 같은 간격이 되도록 가로수를 추가로 심는 사업을 추진하고 있다. KOI 시에서는 예산문제로 가능한 한 가장 적은 수의 나무를 심고 싶다. 편의상 가로수의 위치는 기준점으로 부터 떨어져 있는 거리로 표현되며, 가로수의 위치는 모두 양의 정수이다. 예를 들어, 가로수가 (1, 3, 7, 13)의 위치에 있다면 (5, 9, 11)의 위치에 가로수를 더 심으면 모든 가로수들의 간격이 같게 된다. 또한, 가로수가 (2, 6, 12, 18)에 있다면 (4, 8, 10, 14, 16)에 가로수를 더 심어야 한다. 심어져 있는 가로수의 위치가 주어질 때, 모든 가로수가 같은 간격이 되도록 새로 심어야 하는 가로.. 2024. 4. 23.