브루트포스 (23) 썸네일형 리스트형 [Python] 4349번 Blocks https://www.acmicpc.net/problem/4349 4349번: Blocks Donald wishes to send a gift to his new nephew, Fooey. Donald is a bit of a traditionalist, so he has chosen to send a set of N classic baby blocks. Each block is a cube, 1 inch by 1 inch by 1 inch. Donald wants to stack the blocks together into a rectangu www.acmicpc.net 22/09/24 브론즈 문제 치고는 살짝 당황하게 만드는 난이도를 가진 문제로, 애를 살짝 먹었다. 개인적으로는 브론즈 2가 아니라 .. [Python] 2057번 팩토리얼 분해 https://www.acmicpc.net/problem/2057 2057번: 팩토리얼 분해 음 아닌 정수 N이 주어졌을 때, 이 수를 서로 다른 정수 M(M ≥ 1)개의 팩토리얼의 합으로 나타낼 수 있는지 알아내는 프로그램을 작성하시오. 예를 들어 2=0!+1!로 나타낼 수 있지만, 5는 이와 같은 www.acmicpc.net 22/09/15 같은 그룹원에게 추천받아서 풀었던 그리디 문제인데, (그리디인 줄 모르고 풀었었다) 접근방법을 틀리게 할 때가 많았던 문제이다. 역시 그리디는 그리디인줄 모르고 풀어야 그 진정한 어려움을 알 수 있다고 했던가, 정말 힘들었다. 이후에 브루트 포스로 풀 수 있다는 것을 깨닫고, 조금 허탈함을 느끼긴 했다. 문제 접근 방식: 맨 처음에 접근 할 때 잘 모르겠어서 그룹.. [Python] 1544번 사이클 단어 https://www.acmicpc.net/problem/1544 1544번: 사이클 단어 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 www.acmicpc.net 22/09/11 그룹 제출 현황에 있는 문제를 아무 문제나 무작위로 한 문제 골라서 풀었다. 문제 접근 방식: 원형으로 쓴다는 아이디어에서 착안하여 덱 자료구조를 떠올렸다. 파이썬의 deque은 rotate라는 메서드가 존재하기 때문에 이 메서드를 활용하면 될 것이라고 생각했다. 구현은 다음과 같이 진행했다. 새로운 단어가 나오면 cycle_word라는 리스트에 그 새로운 단어를 원형으로 써서 읽힐.. [Python] 1711번 직각삼각형 1711번: 직각삼각형 (acmicpc.net) 1711번: 직각삼각형 첫째 줄에 점의 개수 N(3 ≤ N ≤ 1,500)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 점의 x좌표와 y좌표가 빈 칸을 사이에 두고 주어진다. 좌표값은 절댓값이 1,000,000,000을 넘지 않는 정수이며, 주 www.acmicpc.net 22/09/08 그룹 연습에서 풀다가 실패했던 문제로, 다시 풀어서 맞았습니다! 를 받은 문제이다. 단순한 브루트 포스이지만, 맞왜틀을 많이 당한 문제로, 지금 다시 보니 for문과 combinations의 차이점을 느낄 수 있었던 문제였던 것 같다. 문제 접근 방식: 단순 무식하게 그냥 세 점을 잡아서, 세 점의 길이 중 가장 긴 변의 제곱이 나머지 두 변의 길이의 제곱의 합과 같은지.. [Python] 9663번 N-Queen (추후 보강 예정) 9663번: N-Queen (acmicpc.net) 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 22/09/01 클래스 3 문제 중에서 안 풀었던 문제가 있기에 풀어보았다. 백트래킹 문제 중에서 가장 유명하고 잘 알려진 문제인 N-Queen 문제이기에, 나는 당연히 이 문제를 솔루션을 보지 않고는 풀기 힘들 것이라고 생각되어서 이 문제를 유튜브 강의를 참고하여 해결하였다. 참고한 유튜브 강의는 아래 링크에 있다. 유튜브 강의에서 설명을 굉장히 잘 해놓았기 때문에 보고 글을 읽으면 더욱 이해가 잘 될 것이다. 파이썬으로 배.. [Python] 18111번 마인크래프트 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 22/08/28 이 문제 또한 클래스 2++ 문제 중 풀지 않은 문제가 있길래 풀어본 문제이다. 처음에 문제를 접근할 때, 분명 브루트 포스 문제이긴 한데 주어진 제한시간이 생각보다 여유롭지 않아서 마음속으로 어떻게 문제를 풀지 고민을 많이 했었다. 그래서 한 번 정도 시행 착오를 겪고 나서 푼 문제이다. 참고로 python3로는 시간이 너무 빡빡한 탓에 pypy로 제출했으니, python3로 .. [Python] 1699번 제곱수의 합 / 17626번 Four Squares https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net https://www.acmicpc.net/problem/17626 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net 22/08/.. 이전 1 2 3 다음