전체 글 179

브루트 포스[Brute Force]

Brute Force Algorism은 "완전탐색알고리즘"으로 Brute는 "무식한"을 뜻한다.무식하다? :"가능한 모든 경우의 수를 '모두' 탐색하면서 요구조건에 충족되는 결과만을 가져온다"라는 특징에 존재한다.*해가 존재할 것이라고 예상되는 영역을 모두 탐색!!*Solutionstep 1.주어진 문제를 선형으로 구조화하기step 2.구조화된 문제공간을 적절한 방법으로 해를 구성할 때까지 탐색한다.step 3.구성된 해를 정리한다.브루트 포스 문제의 종류자료의 구조가1) 선형구조 ->순차 탐색2) 비선형구조 -> BFS, DFS활용 문항 #2798_블랙잭Solution)1. 모든 Card를 List안에 넣는다.2. Itertools 의 Combination함수를 활용해서 3개씩 묶어서 List를 만들어..

Algorithm 2022.07.15

[백준] 10816번-숫자카드2 (Python) -> Counter함수 (작성중)

문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,0..

Algorithm 2022.07.05

[백준] 9020번-골드바흐의 추측 (Python) -> 소수찾기의 극한

문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰 짝수..

Algorithm 2022.07.04

[백준] 4948번- 베르트랑 공준 (Python)

문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하는 한 줄로 이루어져 있다. 입력의 마지막에는 0이 주어진다. 출력 각 테스트 케이스에 대해서, n보다 크고..

Algorithm 2022.07.04

[백준] 1193번-분수찾기 (Python)

문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 첫째 줄에 분수를 출력한다. 예제 입력 1 1 예제 출력 1 1/1 예제 입력 2 2 예제 출력 2 1/2 예제 입력 3 3 예제 출력 3 2/1 예제 입력 4 4..

Algorithm 2022.06.23

[백준] 1157번- 단어 공부 (Python)

문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 예제 입력 1 Mississipi 예제 출력 1 ? 예제 입력 2 zZa 예제 출력 2 Z 예제 입력 3 z 예제 출력 3 Z 예제 입력 4 baaa 예제 출력 4 A 문제 풀이 이 문제에서 내가 못한 발상은 두개였음. 1)set을 활용하는 것까진 발상 가능. list로 바꿔야..

Algorithm 2022.05.09

[백준] 2675번- 문자열 반복 (Python)

문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 예제 입력 1 2 3 ..

Algorithm 2022.05.01

[백준] 11720번-숫자의 합 (Python)

문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. 예제 입력 1 복사 1 1 예제 출력 1 1 예제 입력 2 5 54321 예제 출력 2 15 예제 입력 3 25 7000000000000000000000000 예제 출력 3 7 예제 입력 4 11 10987654321 예제 출력 4 46 정지민의 코멘트 이번 문제는 딱히 어려운건 아니었고 그냥 그저께 내가 배운 개념을 이용해서 브론즈 2긴 한데 보자마자 바로 풀어서 기분이 좋아서 올리는 문제임 히히... 아 그리고 추가적으로 익히고 싶은게 있는데, ..

Algorithm 2022.05.01

[백준] 1062번-한수 (Python)

문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 예제 입력 1 110 예제 출력 1 99 예제 입력 2 1 예제 출력 2 1 예제 입력 3 210 예제 출력 3 105 예제 입력 4 1000 예제 출력 4 144 예제 입력 5 500 예제 출력 5 119 코드 def hansu(x): cnt = 0 for i in range(1,x+1): b = list(..

Algorithm 2022.04.29