일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 | 29 | 30 | 31 |
- 웹해킹
- hacking
- reversing
- 워게임
- 소프트웨어보안
- TCP
- 시스템해킹
- System
- XSS
- 드림핵
- 해킹
- dreamhack
- Webhaking
- Web
- 시스템
- bee-box
- 소프트웨어
- 순서도
- 리버싱
- 네트워크
- network
- webhacking
- 비박스
- 알고리즘
- 모의해킹
- 네트워크보안
- ftz
- CodeEngn
- 웹
- WarGame
- Today
- Total
목록순서도 (15)
Without a Break

병합 정렬 오름차순으로 정렬된 배열 A(M)과 내림차순으로 정렬된 배열 B(N)을 병합 정렬하여 오름차순의 배열 C(M+N)을 생성하는 알고리즘(단, 배열 A(M)과 배열 B(N)에는 900000 이하의 정수가 저장되어 있으며, 모든 배열의 첨자는 1부터 시작한다). 오름차순 배열 A은 가장 첫번째 원소부터 검색을 시작하고, 내림차순 배열은 가장 끝 원소부터 검사를 시작한다. 새로 생성할 배열은 첫번째 원소부터 저장할 것이기 때문에 최솟값은 1로 잡아주고, 변수 Done으로 배열 처리의 종료 여부를 판단한다. 배열 A와 B의 두 원소를 비교하여 작은 값을 배열 C에 저장하고 인덱스를 증가시켜 다음 원소를 비교하는 작업을 반복한다. 배열 A 또는 B의 마지막 원소까지 처리했다면 변수 Done의 값을 1로 ..

문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. #include void han_soo(int N) { if (N

문제 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다. 평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면 이 되고 따라서 중앙값은 30이 된다. 다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오. 입력 첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연수가 주어진다. 주어지는 자..

석차 A회사는 25개의 대리점을 가지고 있다. 이들 대리점의 전년도 매출액을 순서대로 읽어 들여 매출액을 토대로 대리점의 석차를 구한 후, 25개의 대리점에 대하여 매출액과 석차를 함께 출력하는 알고리즘을 제시하라. 단, i번째 대리점에 대하여 A(i)는 매출액을 나타내고, R(i)는 석차를 나타낸다. 만일 매출액이 동일한 대리점이 존재할 경우 자신보다 상위자로 보지 않고 석차를 낮추지 않도록 한다. [순서도] 첫번째 대리점부터 순서대로 매출액을 입력받는다. i번째 대리점의 석차를 1등이라고 한다. 첫번째 대리점부터 j번째 대리점과 매출액을 비교하고, i번째 대리점보다 j번째 대리점의 매출액이 더 크면 i번째 대리점의 석차를 1 증가시킨다. 이 과정을 j를 1씩 증가시켜 대리점 25개와 모두 비교한 뒤,..

문제 재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ... 총 데이터의 개수는 항상 ab개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라. 입력 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다...

행 우선/열 우선 배열 2차원 배열 A(5,5)의 원소에 다음과 같은 모습으로 값을 저장해주는 알고리즘 순서도 [순서도] 1행 1열부터 값을 채운 뒤 A(R,C)에 V값을 저장하고, R과 V의 값을 1씩 증가시켜 저장하는 것을 R(행)이 다섯번째 행이 될 때까지 반복한다. R(행)이 5보다 크면 반복문을 끝내고 C의 값을 1 증가시켜 준 뒤, 다시 R=1부터 반복한다. (V의 값은 계속 증가) C(열)이 5보다 크면 알고리즘을 종료한다. 모래시계 모양 배열 2차원 배열 A(5,5)의 원소에 다음 그림과 같은 모습으로 값을 저장하는 알고리즘 순서도 [순서도] 1~3행까지는 저장된 값의 수가 감소(5->3->1)하고 3~5행까지는 저장된 값의 수가 증가(1->3->5)하므로 3을 변수 M으로 두고 2개의 중..

문제 M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완전제곱수는 64, 81, 100 이렇게 총 3개가 있으므로 그 합은 245가 되고 이 중 최솟값은 64가 된다. 입력 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10000이하의 자연수이며 M은 N보다 같거나 작다. 출력 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 완전제곱수가 없을 경우는 첫째 줄에 -1을 출력한다. #include int main() { int m, n; int..

BCD 코드와 3초과 코드의 변환 4비트의 BCD 코드를 받아들여 4비트의 3초과 코드로 변환하여 출력하는 알고리즘 배열 B는 입력인 BCD 코드 보관용 배열 배열 E는 결과인 3초과 코드 보관용 배열 배열 A는 2진수 0011 보관용 배열 변수 C는 캐리 첫 번째 반복문 : 최하위 비트부터 상위 비트로 올라가면서 덧셈을 실시한다. BCD 코드 1자리와 0011 중 1자리를 그리고 캐리를 더한다. 합이 1보다 큰지 검사하고 1보다 크면, 2로 나눈 나머지를 저장하고 상위 캐리가 있음을 표시한다. 1보다 작으면 합 그대로를 저장하고 상위 캐리가 없음을 표시한다. 두 번째 반복문 : 배열 E를 차례대로 출력한다. 패리티 비트 검증 8비트 패리티 비트 오류 검사를 실시하는 알고리즘 P(0)에는 홀수 패리티(1..