-
[알고리즘/C언어] 도형 알고리즘 / 직각삼각형 채우기 (정보처리기사, 실기)Algorithm 2019. 5. 25. 21:23
직각삼각형 숫자 채우기 (1) 1 0 0 0 0 2 3 0 0 0 4 5 6 0 0 7 8 9 10 0 11 12 13 14 15 직각삼각형 모양으로 숫자 채워넣는 문제는 먼저 표로 행과 열의 인덱스 번호를 써보면 쉽게 만들 수 있다. i (row) j (column start) j (column end) 1 0 0 0 0 0 0 0 2 3 0 0 0 1 0 1 4 5 6 0 0 2 0 2 7 8 9 10 0 3 0 3 11 12 13 14 15 4 0 4 일단 위 표와 같이 행의 인덱스 번호는 0 1 2 3 4 이다. 숫자가 써지는 영역의 시작 인덱스는 0으로 고정이고 끝 인덱스는 행의 인덱스 번호와 동일하게 0 1 2 3 4 로 1씩 증가한다. 0행일 때, 열 번호가 0번부터 0번일 때까지 숫자가 써..
-
[알고리즘/C언어] 도형 알고리즘 / 사각형 ㄹ자 채우기 (정보처리기사, 실기)Algorithm 2019. 5. 24. 21:42
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 지난번에 배열을 정리하면서 사각형 모양으로 숫자를 출력하는 코드를 정리했었다. (단 주의해야할 것은 아래 코드는 0행 0열이 아닌 1행 1열부터 숫자를 채운 코드이다.) #include #define NUM 5 int main() { int row, col, i, j, k = 0; int arr1[NUM + 1][NUM + 1] = { 0 }; //사각형 도형 채우기 printf("-----------------------\n"); for (row = 1; row
-
[알고리즘/C언어] 수열의 합 알고리즘(3) / 계차수열의 합 (정보처리기사, 실기)Algorithm 2019. 5. 20. 13:27
1. Sum= 2 + 3 + 5 + 8 + 12 + ... +(NUM항)의 합 #include #define NUM 10 int main() { int cnt, sum = 2, i = 2 , j = 0; for (cnt = 1; cnt < NUM; cnt++) { j = j + 1; i = i + j; sum = sum + i; printf("cnt=%2d, j=%2d, i=%3d, sum=%5d\n", cnt, j, i, sum); } printf("----------반복문 종료-------------\n"); printf("cnt=%2d, j=%2d, i=%3d, sum=%5d\n", cnt, j, i, sum); system("pause"); return 0; } 위 수열은 1씩 증가하는 숫자를 더..
-
[알고리즘/C언어] 수열의 합 알고리즘(2) / for문, while문, do-while문, goto문 (정보처리기사, 실기)Algorithm 2019. 5. 19. 22:50
지난 번 포스팅 때 다루지 않았던 while문이나 do-while문, goto문을 이용한 기초적인 수열의 합 알고리즘을 정리해보려고 한다. 1. Sum = 1+2+3+4+...+NUM(10)까지의 합 [for문] #include #define NUM 10 int main() { int cnt, sum = 0, i = 0; for (cnt = 1; cnt 1을 만족하므로 다음 연산을 수행하러 AA문으로 가면 다시 cnt--;을 진행하여 9가 된다. 계속 반복하다가 마지막에 값이 2가 됐을 때, 조건이 참이므로 다시 AA로 가서 cnt--; 연산을 하므로 값이 1이 된다. 바로 이 때가 10번째 연산을 진행했을 때다. 이미 10번의 연산이 모두 끝났으므로 조건은 거짓이 되어야 한다. 그러므로 cnt는 1보다..
-
[알고리즘/C언어] 수열의 합 알고리즘 (정보처리기사, 실기)Algorithm 2019. 5. 13. 14:29
정보처리기사 실기 시험에서 다뤄질만한 기초적인 알고리즘을 이 카테고리에서 쭉 정리해보려고 한다. 1. 동일한 숫자 N번 더하기 Sum = 7 + 7 + 7 + ... + NUM (NUM-10항까지의 합) #include #define NUM 10// 기호형 상수 : 상수 -> 반드시 대문자로 표현한다. int main() { int sum = 0, cnt; for (cnt = 1; cnt = 1; cnt--) { // cnt = NUM, 1, -1 sum = sum + 7; printf("cnt=%d, sum=%d\n", cnt, sum); } printf("----------반복문 종료-------------\n"); printf("cnt=%d, sum=%d\n", cnt, sum); system("p..
-
[알고리즘/자바스크립트] 페이지네이션 헬퍼 (Pagination Helper)Algorithm 2019. 5. 12. 23:22
[문제] 여러분은 PaginationHelper 생성자 함수를 완성해서 Rhaegal의 페이지 세는 작업을 도와주어야 합니다. 이 PaginationHelper는 글자들이 들어있는 배열(collection)과, 한 페이지에 얼마나 많은 글자를 가질 수 있는지 알려주는 숫자(itemsPerPage)을 가질 수 있게 설계되었습니다. 다음의 예를 통해 이 class를 어떻게 사용할 수 있는지 알아봅시다. var helper = new PaginationHelper(['a','b','c','d','e','f'], 4); // PraginationHelper를 사용하기 위해 helper 객체를 생성합니다. // helper instance는 다음과 같이 사용할 수 있습니다. helper.pageCount(); /..
-
[알고리즘/자바스크립트] 꼬리에 붙은 0 (팩토리얼과 Trailing Zero)Algorithm 2019. 5. 12. 20:38
[문제] 주어진 숫자의 팩토리얼을 계산한 값에서, 마지막에 연속되어 붙어있는 0이 몇개인지 반환해주는 함수를 완성해주세요! (팩토리얼을 계산하지 않고 구하기!) 참고로, N 팩토리얼이란 다음과 같은 것을 말합니다. (factorial은 !로 표기합니다. 더 많은 내용은 http://mathworld.wolfram.com/Factorial.html를 참고해주세요) N! = 1 * 2 * 3 * ... * N 예를들어, trailingZeros(6) = 1 왜냐하면, 6! = 1 * 2 * 3 * 4 * 5 * 6 = 720 --> 1 , 끝에 1개의 0이 있습니다. trailingZeros(12) = 2 12! = 479001600 --> 2, 꼬리에 2개의 0이 있습니다. @param {number} n..