Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알고리즘
- CodeEngn
- 네트워크
- 웹
- 비박스
- 시스템
- 네트워크보안
- 웹해킹
- 순서도
- WarGame
- network
- Webhaking
- bee-box
- 모의해킹
- 드림핵
- 소프트웨어보안
- System
- 해킹
- reversing
- 시스템해킹
- 소프트웨어
- TCP
- 워게임
- dreamhack
- ftz
- Web
- webhacking
- 리버싱
- XSS
- hacking
Archives
- Today
- Total
Without a Break
통계산출, 재고관리, 지폐매수계산, 요일계산 알고리즘 본문
통계 산출 알고리즘
전교생이 TOEFL 시험을 본 후 성적표를 받았을 때, 평균저모다 높은 점수를 받은 학생의 수를 계산하는 통계 산출 알고리즘
[순서도]
- 배열 T의 각 토플 점수들의 합을 인덱스를 증가시키면서 변수 S에 저장한다.
- 변수 M에 300명의 토플 점수 평균을 저장한다.
- 인덱스를 다시 1로 초기화시키고, 토플 성적이 평균보다 높은 학생이 있는지 검사한다. 평균보다 높은 성적이 검사되면 CNT를 1 증가시킨다. (300명 모두 검사)
- 300명 모두 검사했으면 CNT를 출력하고, 알고리즘을 종료한다.
재고 관리 알고리즘
다음과 같은 조건으로 재고 신발을 크기별로 정리한 후 그 소계를 보여 준느 재고 관리 알고리즘
- 재고 신발은 모두 1000개라고 가정
- i번째 재고 신발의 크기는 배열 원소 S(i)가 가지고 있다.
- 신발 크기는 170mm부터 300mm까지 5mm 간격으로 할당된다.
[순서도]
- 첫번째 반복문은 신발 크기 F별로 통계치를 보관하는 변수 N(F)를 0으로 초기화한다.
- 두번째 반복문은 신발 1000개의 신발 크기별 개수를 센다. 신발 크기를 가지고 있는 배열 S의 i번째를 변수 F에 보관하고, 크기가 F인 신발의 개수를 N(F)를 증가시켜 저장한다.
- 세번째 반복문은 신발을 크기 별로 출력한다. N(F)가 0이 아니면 신발의 크기(F)와 개수(N(F))를 출력한다.
급여 계산/지패 매수 계산 알고리즘
다음은 회사 사원들에게 출장비를 직브할 때 각 화폐 단위별로 몇 매씩 지급해야 하는지를 계산하는 급여 계산 알고리즘이다. 아래의 <처리조건>을 고려하여 알고리즘을 제시하라.
[순서도]
- 개인별로 지급되는 출장비 P(9)와 전체 출장비 T(9)를 모두 0으로 초기화하고, 성명(N)과 출장비(C)를 입력받는다.
입력받은 N이 STOP이 아닐 경우
- 변수 R에 입력받은 출장비, 화폐 단위를 저장할 변수 M은 10000, 토글 변수 SW는 1로 초기화한 후, 반복문을 진행한다.
- 반복문 : P(K)에 현재 단위 화폐의 매수를 저장하고 합계를 배열 T에 누적한다. 출장비 잔액을 계산해주고 SW가 1이면 다음 화폐 단위를 1/2로, SW가 0이면 다음 화폐 단위를 1/5로 설정하고 SW를 반전해준다.
- 반복문이 끝나면 N,C를 출력하고 각 화폐 단위별로 매수를 출력한 후 다시 처음으로 돌아가 사용자에게 N,C를 입력받는다.
입력받은 N이 STOP일 경우
- 전체 출장비 T를 모두 출력하고 알고리즘을 종료한다.
요일 계산 알고리즘
어떤 해의 1월 1일을 수요일이라고 가정할 때, 같은 해의 날짜(월일)을 받아들여서 요일을 출력해주는 요일 계산 알고리즘 (단, 입력한 날짜의 일 값이 0이면 종료)
[순서도]
- M(월)과 D(일)을 입력받는다. (D가 0이면 알고리즘을 종료)
- 1월 1일과 입력 날짜의 차이를 날 수로 계산한 값을 저장할 변수 NAL을 0으로 초기화하고, 변수 DAL은 M-1로 초기화해 입력받은 달(M)과 1월의 차이를 계산한다.
- DAL이 0이 아닐 경우, 인덱스를 1로 설정하고 인덱스가 DAL보다 커질때까지 12달이 며칠로 구성되어 있는지 알려주는 배열 MD(i)를 NAL에 누적한다. 인덱스가 DAL보다 커지면 NAL에 입력받은 D에서 1을 뺀 값을 더해준다. (1월 "1일"과의 차이를 구하는 것이므로, 1일만큼을 빼주는 것)
- DAL이 0일 경우에는 바로 NAL에 입력받은 D에서 1을 뺀 값을 더해준다.
- 변수 V에 NAL을 1주일 단위로 나눠 정수형으로 바꿔주고, V에 7을 곱해 준다. => 이 과정으로, 몇 주가 남았는지 계산한다. ex) NAL이 110이라고 가정하자. V는 15가 저장되고, 7을 곱해주면 105가 저장된다. (15주=105일)
- 변수 W에 1월 1일과의 차이를 저장한 변수 NAL에서 V를 빼서 몇 일이 남았는지 계산한다. ex) 110 -105=5.
- 1월 1일이 수요일이었으므로, 변수 X에 W+3 값을 저장한다.
- X가 7(일주일)보다 클 경우, 7을 빼주고 7개의 요일이 저장된 배열 WD의 X번째 원소를 출력하고 알고리즘을 종료한다.
'Algorithm > 컴퓨터알고리즘' 카테고리의 다른 글
[순서도 실습] 백준 1057번 - 토너먼트 (C) (0) | 2022.12.03 |
---|---|
병합/퀵 정렬, 이분/순차 검색, 최소비용 그래프 (0) | 2022.11.26 |
[순서도 실습] 백준 1065번 - 함수 (C) (0) | 2022.11.26 |
[순서도 실습] 백준 2587번 - 대표값2 (C) (0) | 2022.11.26 |
석차, 선택/버블/삽입 정렬 (0) | 2022.11.18 |