전체 글
-
백준 1676 - 팩토리얼 0의 개수백준 algorithm 2019. 9. 29. 14:16
문제풀이 : 예를 들어 111533400 이라는 숫자가 있다고 하면 뒤에서부터 0이 아닌 숫자가 나올때까지 0의 숫자를 세는 문제이다. 이 경우에 0의 개수는 2개이다. 첫번째 풀이 : 실제로 n!을 계산하여 하려고 하였지만, 범위를 한참 벗어나서 구하지 못하였다. 두번째 풀이 : 소인수 분해를 하여 2*5의 갯수에 따라 0의 갯수가 정해지는 것을 깨달았다. 그래서 곱해지는 숫자마다마다를 소인수 분해하여 2의 갯수와 5의 갯수를 각각 구했다. 10 = 2*5 => 2(1개) 5(1개) 위와 같은 방식으로 팩토리얼 계산시 곱해지는 수들의 소인수중 2와 5의 개수를 구하였다. 2와 5가 하나씩 짝을 이루어야 0이 되므로 2의 개수와 5의 개수중 최소값을 구하면 되는 문제이다. *알고리즘은 쉽게 짰으나, 코딩..
-
백준 2581 - 소수백준 algorithm 2019. 9. 27. 15:54
에라토스테네스의 체를 사용하면 풀 수 있는 문제이다. 기본적인 알고리즘은 쉽게 짰었는데 제대로된 예외처리를 못해서 5번 넘게 틀렸다.... 2, 3, 5등은 소수인데 이 수들까지 소수가 아닌 것으로 인식을 되게 코드를 짜서 더 틀렸었다. 작은 범위의 수들부터 정확히 따져보면서 코드를 짜야겠다. 에라토스테네스의 체는 아래 URL에서 확인 가능하다. https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 수학에서 에라토스테네스의 체는 소수(소쑤)..
-
백준 10773 - 제로백준 algorithm 2019. 9. 25. 07:46
stack 라이브러리를 쓸 줄 아는지에 대한 문제이다. stack에 대한 개념을 알고 있어야한다. 예외처리가 필요 없는 문제라 쉬웠다. #include #include using namespace std; int main() { int num; //입력받을 명령어 갯수 변수 int command; // 명령어 변수 int val=0; // 최종값 변수 cin >> num; stack stack; for (int i = 0; i > command; if (command == 0) { stack.pop(); } else { stack.push(command); } } while (!stack.empty())//empty면 true를 반환한다 { val += stack.top..
-
백준 1110 - 더하기 사이클백준 algorithm 2019. 9. 24. 15:31
while문을 이용해서 처음 입력 받은 숫자가 나올때까지 사이클 횟수를 풀면 되는 문제이다. 처음 입력받은 숫자와 연산뒤에 숫자를 비교하기 위해서 처음에 한번 연산을 한 뒤에 while문으로 들어가게 문제를 풀었다. #include using namespace std; int main() { int cnt = 0;//연산횟수 변수 선언 int tem = 0;//임시숫자 선언 int tem_ten, tem_one, new_one, last_one; int num = 0; cin >> num; tem = num;// 수 입력받기 tem_ten = tem / 10; tem_one = tem % 10; new_one = tem_ten + tem_one; last_one = tem_one * 10 + (new_o..
-
백준 11720 - 숫자의 합백준 algorithm 2019. 9. 23. 17:44
getline과 get에 대해 고민하다가 나누기로 구현할까 하다가 stoi 함수로 구현하였다. 처음에 atoi 함수로 하려고 했는데 string으로 선언해놓고 atoi로 하려는 멍청한 짓을 하고 있었다. 또한 string 선언부와 대입부를 따로 놔야 컴파일이 되는 것을 확인하였다. 전체적인 내용은 매우 간단하다 입력받은 숫자만큼만 배열을 생성해서 하는 방법으로 다음에는 해봐야겠다. #include #include #include #include using namespace std; int main() { int num; cin >> num; string t; cin >> t; int sum = 0; for (int i = 0; i < num; i++) { string tem; tem= t[i];//선언과..
-
-