Security ★ Development/알고리즘(45)
-
재귀 1
* 틀린 내용이 있을 시 지적 부탁드립니다. 문제는 더블릿 9 재귀에 있는 sfn입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/sfn/sfn.php?pname=sfn 문제는 10진수 4자리를 16진수, 12진수로 나타내고 모든 자리수의 합을 더했을 때 같은 4자리의 10진수를 구하는 것입니다.재귀 카테고리에 있는데... 그냥 풀었습니다.문제 그대로 모든 4자리수에대해 16진수, 12진수로 고치고 각 자리의 합을 더해서 같을 때 이 4자리 수를 출력해주면 됩니다.
2014.10.28 -
dynamic programming 4
* 틀린 내용이 있을 시 지적 부탁드립니다. 문제는 더블릿 21 dynamic programming에 있는 partition입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/partition/partition.php?pname=partition 문제에 나와있는 것 처럼 특정 수의 분할 수를 구하는것이 목표입니다.dp배열을 행을 특정 수, 열을 그 가짓수로 만들 수 있는 특정 수의 개수라고 했을 때 나열해보면1 2 3 4 5 6 7 8 1 1 0 0 0 0 0 0 02 1 1 0 0 0 0 0 03 1 1 1 0 0 0 0 04 1 2 1 1 0 0 0 0 5 1 2 2 1 1 0 0 0 6 1 3 3 2 1 1 0 0 7 1 3 4 3 2 1 1 08 1 4 5 5 3..
2014.10.28 -
for 1
* 틀린 내용이 있을 시 지적 부탁드립니다. 문제는 더블릿 3 for에 있는 hangover입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/hangover/hangover.php?pname=hangover 문제는 긴데 대충 카드를 모두 겹친 길이가 주어진 값 c보다 길 때 가능한 최소의 카드 개수를 구하는 겁니다. 규칙만 찾으면 간단합니다. 문제에도 있듯이 카드의 길이는 처음 1/2부터 시작해서 1/3, 1/4...점점 분모가 1씩 증가합니다. 이걸 하나씩 더하면서 주어진 수보다 커질 때 그 때의 더한 개수를 출력하면 됩니다.
2014.10.28 -
함수 1
* 틀린 내용이 있을 시 지적 부탁드립니다. 문제는 더블릿 8 함수에 있는 prime_palin입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/prime_palin/prime_palin.php?pname=prime_palin 소수이면서 앞뒤로 순서를 바꾸어도 같은 숫자를 구하는 문제입니다. 평범하게 소수를 구하고 회귀수를 구하거나 하면 시간초과 에러가 뜰겁니다. 회괴수인지 먼저 문자열 길이를 구해 앞뒤로 검사해주고 통과하면 소수인지를 확인하는 방법도 저는 시간초과가 떴습니다. 재귀를 통해서 풀었는데 범위 내의 회귀수를 하나씩 만들어가면서 만들어진 수에대해 소수검사를 하였습니다.우선 최대값을 통해 만들어질 수 있는 자리수를 구합니다. 500이면 3자리이고 회귀수를 만들..
2014.10.26 -
dynamic programming 3
* 틀린 내용이 있을 시 지적 부탁드립니다. 문제는 더블릿 21 dynamic programming에 있는 land입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/land/land.php?pname=land 이전에 풀었던 다차원 배열 1 문제 fishing보다 진화된 문제입니다. 물론 그때처럼 풀면 안됩니다. dp 문제인 만큼 어떻게든 반복된 연산을 줄이고 이전에 계산한 값을 이용할 수 있어야 합니다.조금 다른 점은 네모칸 안의 숫자의 합이 아니라 범위의 크기이고 각 칸의 최소최대차의 제한이 있습니다. 여기선 대표적으로 2개의 배열을 쓰겠습니다. 하나(A)는 해당 열에서 어느정도의 한계치가 주어졌을 때 포함할 수 있는 높이를 저장합니다. 다른 하나(B)는 해당 열의 ..
2014.10.20 -
다차원배열 1
* 틀린 내용이 있을 시 지적 부탁드립니다. 문제는 더블릿 7 다차원배열에 있는 fishing입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/fishing/fishing.php?pname=fishing 5 X 5 범위가 주어졌을 때 직사각형 범위의 합이 가장 큰 영역을 구하는 문제입니다. 간단히 시작지점과 끝지점이 모든 영역을 돌면서 그 사이의 합을 구하도록 하였습니다. 6중 for문을 사용하였습니다. 영역이 커지면 시간초과도 날 것 같지만 이 문제에 대해서는 accept를 받았으니 다음 문제로 넘어가겠습니다.
2014.10.13