Algorithm/Brute-force (14) 썸네일형 리스트형 [Python] 백준 1436번 : 영화감독 숌 (S5) - 브루트포스단계별5 #문제 www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net #풀이 & 학습한 내용 "N번째 종말의 수가 나올 때까지 차례대로 시도하는 문제"입니다. 이때, 아래코드의 7번째 줄과 같이 문자열로 666이 포함되어있는지 확인하면 보다 간편하게 코드를 작성할 수 있습니다. #소스코드(7번째 줄 주목) 1 2 3 4 5 6 7 8 9 10 11 12 N = int(input()) num = 0 # 0부터 1씩 증가시켜서 666이 포함됐는지 확인할 수 count = 0.. [Python] 백준 1018번 : 체스판 다시 칠하기 (S5) - 브루트포스단계별4 #문제 www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net #풀이 & 학습한 내용 "체스판을 만드는 모든 경우를 시도하여 최적의 방법을 찾는 문제"입니다. 비교해야할 체스판은 시작점이 'W'인 경우와 'B'인 경우 2가지가 있는데, 둘 중 하나를 계산한 후, 8*8에서 빼주어 나머지 경우의 수를 구할 수 있습니다. #소스코드(5,19번째 줄 주목) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 che.. [Python] 백준 7568번 : 덩치 (S5) - 브루트포스단계별3 #문제 www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net #풀이 & 학습한 내용 "모든 사람을 비교하여 덩치 등수를 구하는 문제"입니다. 아래 코드와 같이 2중 반복문을 구성하고, 자기 자신과 자기자신인 경우를 생각해보면, [Python] 백준 2231번 : 분해합 (B2) - 브루트포스단계별2 #문제 www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net #풀이 & 학습한 내용 "모든 경우를 시도하여 N의 생성자를 구하는 문제"입니다. 이때 각 자릿수의 합을 아래 코드의 6번 줄과 같이 문자열로의 변환과 리스트 컴프리헨션을 이용해서 쉽게 구할 수 있습니다. #소스코드(6번째 줄 주목) 1 2 3 4 5 6 7 8 9 10 11 12 N = int(input()) ans=0 #생성자가 없을 시 답은 0 for num in ran.. [Python] 백준 2798번 : 블랙잭 (B2) - 브루트포스단계별1 #문제 www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net #풀이 & 학습한 내용 "세 장의 카드를 고르는 모든 경우를 고려하는 문제"입니다. 문제를 풀 때, python의 itertools를 이용하면 순열과 조합을 for문 없이 쉽게 구현할 수 있습니다.(velog.io/@dramatic/Python-permutation-combination-%EC%88%9C%EC%97%B4%EA%B3%BC-%EC%A1%B0%ED%95%A9) .. [C++] 백준 2798번 : 거꾸로 구구단 (B2) #문제https://www.acmicpc.net/problem/1341013410번: 거꾸로 구구단일반적인 구구단에서 가장 큰 수는 마지막 항의 값이 제일 크다. 거꾸로 구구단에서는, 각 항에 구구단의 계산 결과로 나온 값을 뒤집어 저장을 한다. 이렇게 하면 가장 큰 값이 항상 마지막이 ��www.acmicpc.net#풀이처음에 풀이 방향을 잘못 잡아 매우 고생했던 문제이다. 문제 의도가 수를 직접 직접 뒤집어 대소비교를 하는 게 아니라, 수는 가만히 내버려 둔 상태에서 거꾸로 읽으며 대소 비교를 하게 하는 것이라고 생각했기 때문이다. 물론 이 방법으로도 문제를 해결할 수 있겠지만, 고려해야 할 점이 너무 많았다. 특히 자리에 0이 들어가 있는 경우에 대소비교 처리가 매우 힘들었다.이번 문제를 통해 수를.. [C++] 백준 4641번 : Doubles (B1) #문제 https://www.acmicpc.net/problem/4641 4641번: Doubles 문제 2~15개의 서로 다른 자연수로 이루어진 리스트가 있을 때, 이들 중 리스트 안에 자신의 정확히 2배인 수가 있는 수의 개수를 구하여라. 예를 들어, 리스트가 "1 4 3 2 9 7 18 22"라면 2가 1의 2배, 4� www.acmicpc.net #풀이 이러한 유형의 문제가 처음 이해가 잘 되지 않았다. 그 이유는 이와 같은 입출력 예시를 보고 왼쪽의 숫자들의 입력이 모두 끝나면 오른쪽과 같이 출력이 돼야 한다고 생각했기 때문이다. 하지만 "각 테스트 케이스마다 한 줄에 걸쳐 정답을 출력한다."라는 의미는 다음과 같았다. 테스트 케이스를 입력할 때마다 정답이 출력되는 형태인 것이다. 이와 비슷한 .. [C++] 백준 1065번 : 한수 (S4) #문제 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 �� www.acmicpc.net #풀이 문제에서 N이 1000 이하의 자연수라고 하였으므로 경우를 그냥 나누어 문제를 풀 수 있다. 우선 1부터 99까지는 모두 한수이고, 1000은 한수가 아니다. 따라서 우리는 세 자릿수가 한수인지 판단하기만 하면 문제가 해결된다. 이는 각 자릿수를 살펴보는 법을 이용하면 된다.(10으로 나눈 나머지를 구하고 10으로 나눈다) 만약 N이 매우 큰 수로 주어진다면 이러한 방법을 이용할 .. 이전 1 2 다음