본문 바로가기

분류 전체보기293

[알고리즘 문제] fmttalpha (Python / 파이썬) 문제 최홍우는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 2037년이 된 지금, 홍우는 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 있다. 예를 들어, 이 장치를 처음 작동시킬 경우 -1.. 2022. 5. 10.
[알고리즘 문제] streetree (Python / 파이썬) 문제 직선으로 되어있는 도로의 한 편에 가로수가 임의의 간격으로 심어져있다. KOI 시에서는 가로수들이 모두 같은 간격이 되도록 가로수를 추가로 심는 사업을 추진하고 있다. KOI 시에서는 예산문제로 가능한 한 가장 적은 수의 나무를 심고 싶다. 편의상 가로수의 위치는 기준점으로 부터 떨어져 있는 거리로 표현되며, 가로수의 위치는 모두 양의 정수이다. 예를 들어, 가로수가 (1, 3, 7, 13)의 위치에 있다면 (5, 9, 11)의 위치에 가로수를 더 심으면 모든 가로수들의 간격이 같게 된다. 또한, 가로수가 (2, 6, 12, 18)에 있다면 (4, 8, 10, 14, 16)에 가로수를 더 심어야 한다. 심어져 있는 가로수의 위치가 주어질 때, 모든 가로수가 같은 간격이 되도록 새로 심어야 하는 가로.. 2022. 5. 10.
[알고리즘 문제] Combinationzero (Python / 파이썬) 문제 n명의 사람중 m명을 순서에 상관없이 뽑는 경우의 수를 조합이라고 하며 nCm으로 나타낸다. nCm은 수식으로 n!/m!(n-m)! 으로 구할 수 있다. (5! = 1 * 2 * 3 * 4 * 5) n과 m이 주어졌을때 nCm의 끝자리 0의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 n, m(0≤m≤n≤1,000,000)이 들어온다. 출력 첫째 줄에 0의 개수를 출력한다. 문제 풀이 처음에는 이 문제를 파스칼의 삼각형을 이용하여 해결하려고 했으나 메모리 초과 문제가 발생하였습니다. 따라서, 다른 방법을 이용해 풀이해보았습니다. 만약 어떤 수의 끝자리가 0이 되려면 2와 5가 있어야 합니다. 즉, 2와 5가 짝을 이루어 끝자리가 0이 되도록 만듭니다. 따라서 조합을 구하는 공식에서 .. 2022. 5. 10.
[알고리즘 문제] Combinational pascal (Python / 파이썬) 문제 n명의 사람중 m명을 순서에 상관없이 뽑는 경우의 수를 조합이라고 하며 nCm으로 나타낸다. 이 조합은 파스칼의 삼각형과 아주 밀접한 관련이 있다고 한다. n과 m이 주어졌을때 nCm의 값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 n, m(0 ≤ m ≤ n ≤ 30)이 들어온다. 출력 첫째 줄에 nCm의 값을 출력한다. 문제 풀이 이번 문제는 조합을 구하는 문제입니다. 두 가지 방법으로 조합을 구해보았습니다. 먼저 파스칼의 삼각형으로 조합을 구할 수 있습니다. 파스칼의 삼각형은 아래와 같이 위의 두 수의 합으로 아래의 수를 구성하는 삼각형 입니다. 파스칼의 삼각형은 n번째 줄의 m번째 원소가 nCm을 만족시킵니다. 따라서 파스칼의 삼각형을 2차원 배열로 구현해 조합을 구할 수 있습니다.. 2022. 5. 10.