Loading...

deque를 이용하면 회전이 가능하다 -보물상자 비밀번호-

1. 문제 5658 [모의 SW 역량테스트] 보물상자 비밀번호 SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 16진수의 배열이 주어지고, 사각형의 각 변에 동일한 개수만큼 수들이 놓여있다. 그러한 개수만큼 모아 비밀번호를 만들고, 이들을 1회전씩 수행하면서 비밀번호를 계속 생성해나간다 k번째로 큰 비밀번호를 찾는다면? 2. 풀이 SWEA의 A형 수준? SW 역량테스트는 결국 문제에서 요구하는대로 성실하게 구현하면 되는 것 같다 대부분 구현, 완전탐색, 시뮬레이션 이런 느낌? 먼저 사각형의 각 변에 동일한 개수만큼 숫자가 놓여있으며, 회전해야하므로 rotate()를 이용하기 위해..

다이나믹 프로그래밍 정복 -피보나치 변형 몇가지-

1. 문제 17175번: 피보나치는 지겨웡~ (acmicpc.net) 17175번: 피보나치는 지겨웡~ 혁진이는 알고리즘 문제를 만들라는 독촉을 받아 스트레스다. 하지만 피보나치 문제는 너무 많이 봐서 지겹기 그지없다. 그러나 문제를 만들 시간이 없는 혁진이는 피보나치 문제를 응용해서 www.acmicpc.net 피보나치 함수의 호출 횟수를 구하는 문제 2. 풀이 재귀 함수의 호출 횟수를 곧이 곧대로 구하면 풀 수 없다 def fibonacci(n): global cnt cnt += 1 if n < 2: return n return fibonacci(n-2)+fibonacci(n-1) 중간에 cnt를 넣어가지고 cnt를 구하면 함수의 호출횟수가 되는데 n이 조금만 커져도 도저히 시간안에 함수가 끝나질 않..

2022. 9. 18. 04:05

이진 탐색 정복 -array를 쓰지 않아도 되는 경우-

1. 문제1 13706번: 제곱근 (acmicpc.net) 13706번: 제곱근 첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다. www.acmicpc.net 정수 n의 제곱근을 찾는 프로그램을 작성 2. 풀이1 이분탐색으로 풀수있다는데 어떻게 가능할까 처음에는 이분탐색 알고리즘을 그대로 써서 n의 제곱근을 찾기 위해 0부터 n까지 숫자를 리스트에 담아두고 mid 포인트를 찾아서 array[mid]의 제곱이 target인 n이 되는 mid를 찾아 array[mid]를 return하는 방법으로 했는데 from sys import stdin def binary_search(array,target,start,end): while start targ..

2022. 9. 18. 03:19

BFS/DFS 정복기 -memoization을 이용한 효율적인 탐색-

1. 문제 1861. 정사각형 방 ttps://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LtJYKDzsDFAXc&categoryId=AV5LtJYKDzsDFAXc&categoryType=CODE&problemTitle=정사각형+방&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 $n^{2}$개의 방이 $N*N$ 형태로 늘어서있고, 각각은 1부터 $n^{2}$이하까지 전부 서로 다른 수로 순서와 무관하게 적혀있다. 어떤 방에 있을때, 정확히 현재 방보다 1 더 큰 수가 적힌 방으로만 이동할 수 있다고 할때, 처음에 어떤 수가 ..

2022. 9. 15. 11:38

트리 이론 기본편 -중위 순회의 특징 응용하기-

1. 이진 탐색 트리의 특징 이진 탐색 트리는 어떠한 경우에도 왼쪽 서브 트리의 루트 루트 > 오른쪽 서브트리 순서대로 순회를 하게 된다. 그렇다면 주어진 이진 트리의 노드를 중위순회한다면, 트리에 넣어야할 데이터의 순서가 주어지며 그러한 순서대로 데이터를 작은 값부터 넣으면 "왼쪽 서브 트리의 루트 2 > 3 > 4 > 5 > ..

2022. 9. 14. 02:56

이진 탐색 정복기3 -심화 응용 lower bound, upper bound-

1. 문제 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 주어진 수열에서 특정한 수들이 몇개나 있는지 찾는 문제 2. lower bound와 upper bound 지금까지 배웠던 이진탐색 알고리즘은 특정한 수가 존재하는지, 존재하지 않는지만 알아보는 알고리즘이다. 하지만 수열에서 특정한 수가 여러개 존재할 수도 있는데 그럴때 이진탐색으로 몇개나 존재하는지 알 수 있을까 만약 특정한 수가 가장 먼저 나오기 시작..