본문 바로가기
728x90

브루트포스23

[python] 백준 18808 스티커 붙이기 https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 문제 해결 스티커를 붙이는 방법이 상세하게 나왔다. 최대한 있는 그대로 붙이려 하되, 안되면 90 오른쪽으로 회전해가며 붙여보고 그래도 안붙여지면 버리고 다른 것을 순서대로 붙이는 것이다. 따라서 우리는 붙일 수 있는지 확인하고 붙여질 수 있으면 붙이고 옮겨가며 붙여보되, 안되면 회전을 시키고 반복하는 알고리즘을 짜면 된다. CODE import copy def checking(r:int,c:int.. 2023. 11. 18.
[python] 백준 2659 십자카드 문제 https://www.acmicpc.net/problem/2659 2659번: 십자카드 문제 입력은 한 줄로 이루어지며, 이 한 줄은 카드의 네 모서리에 씌여있는 1 이상 9 이하의 숫자 4개가 시계 방향으로 입력된다. 각 숫자 사이에는 빈칸이 하나 있다. www.acmicpc.net 문제 해결 주어진 입력값을 가지고 시계수를 구하는 함수를 만든다. 그 방법은 맨 앞의 숫자를 맨 뒤로 옮겨가며 가장 최솟값이 나오는 수를 구하면 된다. 1111은 가장 작은 시계수인 것은 명백하다. x를 입력값을 십자모형의 카드에 넣어 얻은 시계수라고 하면 1111부터 x까지 시계수의 개수를 구하면 되는 문제이다. CODE import sys input = sys.stdin.readline def clock_num(n): .. 2023. 10. 18.
[python] 백준 2666 벽장문의 이동 https://www.acmicpc.net/problem/2666 2666번: 벽장문의 이동 첫 번째 줄에 벽장의 개수를 나타내는 3보다 크고 20보다 작거나 같은 하나의 정수, 두 번째 줄에 초기에 열려있는 두 개의 벽장을 나타내는 두 개의 정수, 그리고 세 번째 줄에는 사용할 벽장들 www.acmicpc.net 문제 해결 재귀를 이용해 모든 경우를 해보면서 최적의 해를 출력 내 생각에는 함수 구현 문제라고 보는 겻이 편하다. CODE import sys input = sys.stdin.readline n = int(input()) first, second =map(int,input().split()) m = int(input()) orders = [] dp = [[[0 for _ in range(n+.. 2023. 5. 6.
[python] 백준 1062 가르침 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 문제해결 anta와 tica 사이 알파벳을 봐야하지만 중요한 것은 'a', 'n', 't', 'i', 'c' 는 무조건 들어가야한다. 즉 k=5: learned = [0]*123 for x in {'a','n','t','i','c'}: learned[ord(x)] = 1 for teach in list(combinations(res,k-5)): for t in teach: learned[o.. 2023. 5. 5.
728x90