Algorithm 12

[백준] 1676번 팩토리얼 0의 개수 (실버5)

팩토리얼 값에서 0의 개수 구하기 주어진 숫자 n에 대한 팩토리얼 값에서 처음 0이 아닌 숫자가 나왔을 때 그전까지의 0의 개수를 구하는 문제입니다. 내가 생각한 방법 n에 대한 팩토리얼 값을 계산한 뒤, 이를 문자열로 변환하여 맨 뒤에서부터 0이 아닌 숫자가 처음 나오는 인덱스를 찾고, 이를 전체 문자열 길이에서 빼주면 0의 개수를 구할 수 있을 것이라 생각했습니다. 따라서 다음과 같이 코드를 작성해 보았습니다. static int getFactorialNum(int num) { int result = 1; for(int i=2; i= 0; i--) { if(strFactNum.charAt(i) != '0') { n1 = i; break; } } result = (strFactNum.length() -..

Algorithm 2023.02.20

Algorithm _ 시간 복잡도 (O(1),O(log n),O(n),O(n^2),O(2^n))

시간 복잡도 위에 그래프의 모습에서 보이는 것처럼 간단한 출력과 같은 O(1) 혹은 단순한 증가함수인 O(n), O(log n ) 들과 O(n^2), O(2^n)의 그래프의 기울기가 큰 차이가 나타나는 걸 볼 수 있습니다. 컴퓨터가 계산할 때 사용하는 알고리즘,함수에 따라 값에 증가에 따른 결괏값을 구하는 시간이 달라지는데 이를 시간 복잡도라고 얘기합니다. 시간 복잡도를 고려해야 하는 이유 우리가 프로그램을 만들 때 구현하려는 값을 어떤 알고리즘을 이용해 구현하느냐에 따라 그 프로그램의 최적화에 영향이 가기에 항상 어떻게 하면 더 효율적으로 구현할 수 있는지 고민해야 하며 알고리즘 문제를 풀 때도 문제에서 원하는 시간을 초과하면 문제를 풀 수 없는 경우도 있기에 어떠한 방식으로 알고리즘을 구현할지 생각할..

Algorithm 2023.02.08