본문 바로가기

728x90

브루트포스

[백준알고리즘] 1025번: 제곱수 찾기 -C++ [백준알고리즘] 1025번: 제곱수 찾기 -C++ 1025번: 제곱수 찾기 (acmicpc.net) 1025번: 제곱수 찾기 첫째 줄에 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 직사각형 격자판에 쓰여 있는 수가 주어진다. 모두 한자리이다. N과 M은 9보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 이번 문제는 생각보다 불친절하다. 입력의 범위(n, m)라던가 출력의 범위 등 구체적으로 정해진 것이 없다. 그래서 어쩔 수 없이 브루트 포스를 이용했는데 그것 마저도 범위가 주어지지 않으니 자료형에서 불편함이 있었다. 문제 자체도 불친절해서 문제에 대한 설명도 같이 하겠다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 문제 설명 문제 설명이 지문에 굉장히.. 더보기
[백준알고리즘] 1007번: 벡터 매칭 -C++ [백준알고리즘] 1007번: 벡터 매칭 -C++ 1007번: 벡터 매칭 (acmicpc.net) 1007번: 벡터 매칭 평면 상에 N개의 점이 찍혀있고, 그 점을 집합 P라고 하자. 집합 P의 벡터 매칭은 벡터의 집합인데, 모든 벡터는 집합 P의 한 점에서 시작해서, 또 다른 점에서 끝나는 벡터의 집합이다. 또, P에 속 www.acmicpc.net 문제를 이해하는데 어려움이 있었다. 정확히 무엇이 P이고 벡터 매칭은 무엇이며 벡터의 집합에 대한 설명, V에 대한 설명 등등 처음 봤을 때 이해하기 어려운 내용들이었다. 결국 이 부분들은 다른 질문 게시판의 글이나 다른 블로그의 글을 통해 이해하고 문제를 풀었다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 문제 이해 먼저, 문제를 이해한 내용에 대.. 더보기
[백준알고리즘] 1436번: 영화감독 숌 -C++ [백준알고리즘] 1436번: 영화감독 숌 -C++ 1436번: 영화감독 숌 (acmicpc.net) 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 문제를 어떻게 풀어야할까 고민을 많이 했다. 처음에는 666을 기준으로 왼쪽과 오른쪽에 숫자를 넣어서 가능한 수들을 찾아야 하나 했으나, 대소 비교를 해야 한다는 점이 걸렸다. 1만 번째의 종말의 수가 몇인지를 모르니 언제까지 수를 늘릴지도 모르고 좌우로 어디부터 어떻게 넣어야 할지도 애매했다. 그래서 1부터 그냥 수를 늘려가면서 666이 들어가는지 확인하는 방.. 더보기
[백준알고리즘] 1018번: 체스판 다시 칠하기 -Python, C++ [백준알고리즘] 1018번: 체스판 다시 칠하기 -Python, C++ 1018번: 체스판 다시 칠하기 (acmicpc.net) 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 예전에 파이썬으로 풀었던 문제이지만 포스팅을 하지 않았었다. 예전에 풀었던 파이썬 코드는 가장 아래쪽에 넣어두었다. 주어진 입력이 들어오면 가장 수정을 적게해도 되는 8x8 크기의 체스판을 떼어내면 된다. 그러다 보니 직접 일일이 8x8 크기의 체스판을 떼어내는 모든 경우에 수정해야 하는 칸의 수를 카운팅 했다. 처음에는 각 시.. 더보기
[백준알고리즘] 7568번: 덩치 -C++ [백준알고리즘] 7568번: 덩치 -C++ 7568번: 덩치 (acmicpc.net) 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 예전에 파이썬으로 풀고 포스팅까지 했던 문제다... 그런데 오늘은 풀면서 엄청 헤매였다.... 아래는 그때 포스팅했던 글이다... 그때 손풀기용으로 풀었다며 당당하던 나는 어디로 갔는가.. [백준알고리즘] 7568번: 덩치 -Python (tistory.com) [백준알고리즘] 7568번: 덩치 -Python [백준알고리즘] 7568번: 덩치 -Python http.. 더보기
[백준알고리즘] 2231번: 분해합 -Python, C++ [백준알고리즘] 2231번: 분해합 -Python, C++ 2231번: 분해합 (acmicpc.net) 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 처음에 입력으로 생성자가 들어오는 줄 알고 후딱 풀어버리고는 왜 틀렸지 했다 ㅋㅋ;; 입력은 생성자가 아닌 분해합이 들어오며, 가능한 생성자 중 가장 작은 값을 출력하는 문제이다. 문제 자체는 로직이 쉬웠다. 그런데 이번에 C++로 푼 로직과 달리 예전에 파이썬으로 푼 코드가 있어서 같이 가져왔다. 아래는 C++ 코드다. 전체 입력.. 더보기
[백준알고리즘] 1065번: 한수 -C++ [백준알고리즘] 1065번: 한수 -C++ 1065번: 한수 (acmicpc.net) 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 정말 오랜만에 한수 문제를 풀었다. 100 미만은 무조건 등차수열이고, 1000은 등차수열이 아니다. 나머지 3자리 숫자에 대해 등차수열을 이루는 지만 확인해주면 된다. # include int main(void) { int n; std::cin >> n; int answer = 0; for (int i = 1; i 더보기
[백준알고리즘] 15684번: 사다리 조작 -Python [백준알고리즘] 15684번: 사다리 조작 -Python https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선이 같은 위치를 갖는다. 아래 그림은 N = 5, H = 6 인 경우의 그림이고, 가로선은 없다. 초록선은 세로선을 나타내고, 초록선과 점선이 교차하는 점은 가로선을 놓을 수 있는 점이다. 가로선은 인접한 두 세로선을 연결해야 한다. 단, 두 가로선이 연속하거나 서로 www.acmicpc.net Python3로는 시간 초과가 난다. 브루트 포스문제인데 최근에 또다시 브.. 더보기

728x90