[ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/algolizum.pdf · [ 알고리즘...

21
- 1 - [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에 대해 일별 평균 방문자 수와, 최대 방문자 수, 최소 방문자 수를 찾는 알고리즘이다. - 1년 동안의 일별 방문자 수는 V(365)로 주어진다. - 알고리즘에 사용되는 변수는 다음과 같다. S : 합계 MA : 최대값 MI : 최소값 J : 첨자 M : 평균

Upload: others

Post on 17-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 1 -

[ 알고리즘 연습문제 ]

[문제 1] 국립공원 방문자

다음은 1년 동안 국립공원 방문자에 대해 일별 평균 방문자 수와, 최대 방문자 수, 최소 방문자 수를

찾는 알고리즘이다.

- 1년 동안의 일별 방문자 수는 V(365)로 주어진다.

- 알고리즘에 사용되는 변수는 다음과 같다.

S : 합계

MA : 최대값

MI : 최소값

J : 첨자

M : 평균

Page 2: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 2 -

답항 보기

1 -1 2 -2 3 0 4 1 5 2

6 365 - S 7 J + S 8 J < 20 9 J < 365 10 J <= 365

11 J > 20 12 J > 365 13 J >= 200 14 MA 15 MA * MI

16 MA - MI 17 MA = 0 18 MA = 1 19 MA = MI 20 MI = 0

21 MI = 1 22 MI 23 S * 365 24 S * V(J) 25 S + 365

26 S + MA 27 S + MA + MI 28 S + MI 29 S + V(J) 30 S + V(K)

31 S - 365 32 S / 365 33 S / V(J) 34 V(0) 35 V(1)

36 V(128) 37 V(365) 38 V(J + 1) 39 V(J) < MA 40 V(J) <= MI

41 V(J) = MA 42 V(J) > MA 43 V(J) >= MI 44 V(J) 45 V(K + J)

46 V(K - J) 47 V(K) 48 V(MA) 49 V(MI + J) 50 V(MI)

Page 3: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 3 -

[문제 2] 성적처리

다음은 전교생의 영어 점수가 평균이상인 학생들의 수학점수 평균을 출력하는 알고리즘이다.

- 전교생의 수는 200명이다.

- I번째 학생의 영어점수는 ENG(I)에 수학점수는 MAT(I)로 주어진다.

- 알고리즘에 사용되는 변수는 다음과 같다.

S : 합계

J : 첨자

ME : 평균 영어점수

K : 첨자

MM : 평균 수학점수

Page 4: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 4 -

답항 보기

1 -1 2 -2 3 0 4 1 5 2

6 ENG(J) 7 ENG(J) <= ME 8 ENG(J) > ME 9 ENG(J) >= ME 10 ENG(K)

11 ENG(K) / S + 1 12 ENG(K) <= ME 13 J + 1 14 J + K 15 J < 200

16 J < N 17 J <= 200 18 J = J * 2 19 J = J + 1 20 J = J - 1

21 J > 200 22 J > N 23 K + 1 24 K = K + 1 25 K = S * 2

26 MAT(J) + ENG(J) 27 MAT(J) 28 MAT(K) 29 MM = K / S 30 MM = S * 200

31 MM = S / 200 32 MM = S / J 33 MM = S / K 34 S * N 35 S + ENG(J)

36 S / 100 37 S / 200 38 S / N 39 S = -1 40 S = 0

41 S = 1 42 S = 2 43 S = ENG(J) + K 44 S = J * 3 45 S = K + S / 2

46 S = ME / 200 47 S = N - 3 48 S = S + ENG(J) 49 S = S + MAT(J) 50 S MOD 200

Page 5: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 5 -

[문제 3] 성적검색

다음은 학번을 입력받아 N명의 학생 중에서 해당 학번을 갖는 학생의 이름과 석차를 출력하는 알고리

즘이다.

- N명의 학생에 대해 I 번째 학생의 학번은 ID(I), 해당 학생의 이름은 NA(I)로, 석차를 내기위한 점수는

SC(I)로 제공된다.

- 입력받은 학번의 학생이 존재하지 않는 경우 “학생정보없음”을 출력한다.

- 석차를 구함에 있어 동점자에 대해서는 동일석차를 갖도록 한다. 예를 들어 1등이 1명, 2등이 2명일

경우, 3등은 없고 다음으로 높은 점수를 갖는 학생은 4등이 되도록 처리한다.

- 알고리즘에 사용되는 변수는 다음과 같다.

R : 학번

J : 첨자

K : 첨자

Page 6: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 6 -

답항 보기

1 -1 2 -2 3 0 4 1 5 2

6 3 + J 7 ID(1) 8 ID(J) 9 ID(K) 10 ID(N)

11 ID(SC(J)) 12 J 13 J * 2 14 J = -1 15 J = 0

16 J = 1 17 J = 2 18 J = J * 2 19 J = J + 1 20 J = J + N

21 J = J - 1 22 J = J / 2 23 J = SC(0) 24 K + 1 25 K + J + R

26 K - 1 27 K / 2 28 K < N 29 K <= N 30 K > J

31 K > N 32 K >= N 33 N 34 N * 2 35 N * N

36 N + J 37 N / 2 38 R + J 39 R / J * 2 40 R = ID(K)

41 R = J 42 R = K 43 R = R + 1 44 R = SC(K) 45 SC(J + 1)

46 SC(J) 47 SC(J) / 4 48 SC(K) 49 SC(K) + ID(J) 50 SC(N)

Page 7: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 7 -

[문제 4] 주차요금 계산

다음은 공영 주차장에서 N 대의 차량에 대해 주차요금의 총 합을 구하는 알고리즘이다.

- 주차시간은 최대 24시간을 넘지 않는다.

- I번째 차량의 주차시간은 분 단위로 배열 T(I)로 제공된다.

- 주차시간이 15분 미만인 차량에 대해서는 요금이 면제된다.

- 최초 30분 까지는 기본요금 1,000원이 징수된다.

- 30분 초과부터 10분당 400원의 요금이 징수된다.

- 일일 최대 주차요금은 40,000원이다. 즉, 계산된 주차요금이 40,000원이 넘을 경우 40,000원만 징수

된다.

- 알고리즘에 사용되는 변수는 다음과 같다.

S : 주차요금 합계

J : 첨자

TI : 임시변수

F : 주차요금

Page 8: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 8 -

답항 보기

1 -1 2 -400 * J 3 0 4 1 5 1000

6 1000 + (F * 400) 7 1400 8 400 9 40000 10 40000 > J

11 500 12 512 / J 13 7000 14 999 15 F * J

16 F - S 17 F / J 18 F = 0 19 F = 1000 - J 20 F = 400 * J

21 F = 400 * J + 1 22 F = 40000 23 F = N 24 J <= N 25 J = -1

26 J = 0 27 J = 1 28 J = 1000 29 J = J - 1 30 J > (N * F)

31 J > 1000 32 J > N 33 J >= N 34 NULL 35 S + F

36 S + F - J 37 S - F 38 S / 2 39 S / F 40 S = S + T(J)

41 S = S / F 42 T(J) = 0 43 T(J) > 45 44 T(N) 45 TI < 15

46 TI <> 30 47 TI = 400 * J 48 TI = TI - 10 49 TI = TI - 30 50 TI >= 15

Page 9: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 9 -

[문제5] 요일별 교통위반 건수 계산

다음은 2005년도의 N건의 교통위반 자료를 바탕으로 일요일의 위반건수를 출력하는 알고리즘이다.

- I번째 위반이 발생한 날짜는 월, 일에 대해 각각 M(I), D(I)로 제공된다.

- 2005년 1월 1일은 토요일이다.

- 1월부터 12월까지 각 달의 날짜 수는 배열 A(12)에 제공된다. 즉, A(1) = 31, A(2) = 28 … A(12) =

31과 같이 저장되어 있다.

- 알고리즘에 사용되는 변수는 다음과 같다.

C : 교통위반건수

J : 첨자

NS : 요일계산을 위한 임시변수

K : 첨자

Y : 요일

Page 10: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 10 -

답항 보기

1 -1 2 -2 3 0 4 1 5 10

6 2 7 28 8 29 9 3 10 30

11 31 12 4 13 5 14 6 15 7

16 8 17 9 18 A(J) 19 A(J) > K 20 A(K + 1)

21 A(K + 2) 22 A(K + J) 23 A(K) 24 C = C + 1 25 C = C - 1

26 C = K + 2 27 C 28 D(J + 1) 29 D(J - 1) 30 D(J)

31 J 32 J = -1 33 J = 0 34 J = 1 35 J = 100

36 J = 2 37 J = C + J 38 K 39 K = -1 40 K = 0

41 K = 1 42 K = A(J) 43 K = D(J) 44 K = J 45 M(J) < K

46 M(J) <= K 47 M(J) = K 48 M(J) > K 49 M(J) >= K 50 NS

Page 11: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 11 -

[문제6] 영업점 판매순위

다음은 7월 한 달 동안 일별 매출액을 누적하여 영업점별 판매 순위를 계산하는 알고리즘이다.

- 영업점의 수는 20개 이며 영업점별 매출액은 S(20, 31)로 제공된다.

- 계산된 영업점의 판매 순위는 R(20)에 저장한다.

- 알고리즘에 사용되는 변수는 다음과 같다.

J : 첨자

K : 첨자

T(20) : 영업점별 7월 매출액 합계를 저장하기 위한 배열

Page 12: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 12 -

답항 보기

1 -1 2 -2 3 0 4 1 5 2

6 J + 1 7 J + K 8 J <= 20 9 J <= 31 10 J = J + 1

11 J = J / 2 12 J = K + J 13 J > 20 14 J > 31 15 J > K

16 K 17 K + 1 18 K + J 19 K - 1 20 K / 2

21 K < 20 22 K <= 20 23 K <= 31 24 K > 20 25 K > 31

26 R(20) = 1 27 R(J + 1) 28 R(J) = 0 29 R(J) = 1 30 R(J)

31 R(K + 1) 32 R(K) 33 R(K) = 0 34 R(K) = 1 35 R(S(J, K))

36 S(20, K) 37 S(31, 20) 38 S(J, K) 39 S(K, 20) 40 S(K, J)

41 T(20) = 0 42 T(J) < T(K) 43 T(J) <= T(K) 44 T(J) <> T(K) 45 T(J) = 0

46 T(J) = 1 47 T(J) > T(K) 48 T(J) >= T(K) 49 T(K) = 0 50 T(K) = 1

Page 13: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 13 -

[문제7] 성과급 계산

다음은 전체사원의 연말 성과급을 계산하는 알고리즘이다.

- 전체 사원의 수는 100명이고, 계산된 성과급은 배열 PRO(100)에 저장한다.

- 성과급은 각 사원의 고과에 따라 차등 지급된다. 고과가 “가”인 사원은 연봉의 50%, "나“인 사원은

연봉의 30%가 지급되며 나머지 고과에 대해서는 성과급이 지급되지 않는다.

- I번째 사원의 고과는 EVL(I)로 제공되며, 고과가 “가”는 1, “나”는 2, “다”는 3, “라”는 4로 주어진다.

- 모든 사원에게 지급된 1년 동안의 월급은 SAL(100, 12)에 저장되어 제공된다.

- 알고리즘에 사용되는 변수는 다음과 같다.

J : 첨자

Y : 연봉

K : 첨자

P : 성과급 지급률

Page 14: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 14 -

답항 보기

1 -1 2 -2 3 0 4 1 5 100

6 110 7 120 8 150 9 2 10 90

11 EVL(J) < 2 12 EVL(J) = -1 13 EVL(J) = 0 14 EVL(J) = 1 15 EVL(J) = 2

16 EVL(J) = 3 17 EVL(J) > 2 18 EVL(K) = 0 19 EVL(K) = 1 20 EVL(K) > 2

21 K 22 K + 1 23 K + 2 24 K + J 25 K - 1

26 K < 100 27 K < 12 28 K <> 100 29 K > 100 30 K > 12

31 P = 0 32 P = 0.5 33 P = 10 34 P = 30 35 P = 50

36 SAL( J, 1) 37 SAL(J) * P / 100 38 SAL(J, K) 39 SAL(K, J) 40 SAL(P, K)

41 SAL(Y, J) 42 Y * (100 / P) 43 Y * P 44 Y * P + 100 45 Y * P / 100

46 Y = 0 47 Y = 1 48 Y = J + 1 49 Y = K + 1 50 Y = SAL(J, 1)

Page 15: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 15 -

[문제 8] 청구금액계산

다음은 각 영업점에 재고량에 따른 추가 공급해야 할 물량을 구하고 이에 따라 영업점에 청구해야할 영

업점별 청구금액을 계산하는 알고리즘이다.

- 영업점의 개수는 N이며 상품 A, B, C에 대해 각 영업점별 재고량은 배열 A(N), B(N), C(N)으로 주어

진다.

- 재고량은 0부터 100사이의 값이며, 상품별로 재고의 개수가 100을 유지하도록 추가 공급 물량을 결

정한다.

- 영업점에 공급하는 상품 A의 단가는 5,000원, 상품 B의 단가는 3,000원, 상품 C의 단가는 4,500원

이다.

- 영업점 등급이 5 이상일 경우 10%의 할인율이 적용된다. 영업점 등급은 배열 G(N)으로 주어진다.

- 계산된 영업점별 청구금액은 배열 M(N)에 저장한다.

- 알고리즘에 사용되는 변수는 다음과 같다.

J : 첨자

NA : 상품A 추가 공급량

NB : 상품B 추가 공급량

NC : 상품C 추가 공급량

MA : 상품A 청구금액

MB : 상품B 청구금액

MC : 상품C 청구금액

Page 16: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 16 -

답항 보기

1 -1 2 -2 3 0 4 1 5 100

6 110 7 2 8 3000 * NB 9 4000 10 4000 * NB

11 4500 12 4500 * NC 13 5000 14 70 15 80

16 90 17 A + B + C 18 A(J) 19 A(J) + B(J) + C(J) 20 B(J)

21 B(K) 22 C(J) 23 C(K) 24 G(J) < 5 25 G(J) <= 5

26 G(J) <> 5 27 G(J) > 5 28 G(J) >= 5 29 J < N 30 J <= N

31 J = N 32 J > N 33 J >= N 34 MA * MB * MC 35 MA + MB + MC

36 NA + NB 37 NA + NB + NC 38 NA 39 NB 40 NB + 3000

41 NB + NC 42 NB + NC / 100 43 NB / 3000 44 NC 45 NC * 8000

46 NC = 0 47 NC = 100 + C(J) 48 NC = 100 - C(J) 49 NC = C(J) 50 NC = C(J) - 100

Page 17: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 17 -

[문제 9] 대여점 회원관리

다음은 연말에 비디오 대여점에서 우수 고객의 수를 계산하는 알고리즘이다.

- 우수 고객은 지난 1년간 대여점의 총 방문 회수가 30회 이상이거나 총 대여 비디오 수가 전체 고객

의 평균 대여 비디오 수 이상인 고객이다.

- 총 연체 회수가 3회를 초과하는 고객은 우수고객에서 제외한다.

- 고객의 총 수는 N명이며 I번째 고객의 월별 방문 횟수, 월별 대여 비디오 수, 월별 연체 횟수는 각각

V(I, 12), R(I, 12), D(I, 12)로 제공된다.

- 알고리즘에 사용되는 변수는 다음과 같다.

S : 합계

J : 첨자

K : 첨자

M : 평균 대여 비디오 수

C : 우수 고객 수

TV : 월별 방문 횟수

TR : 월별 대여 비디오 수

TD : 월별 연체 횟수

Page 18: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 18 -

Page 19: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 19 -

답항 보기

1 1 2 10 3 11 4 12 5 13

6 2 7 3 8 4 9 5 10 9

11 C 12 C = C + 1 13 C = C - 1 14 C = M 15 C = TR

16 C = TV 17 D(0, 0) 18 D(1, J) 19 D(J, K) 20 D(K, 1)

21 D(K, J) 22 J 23 M 24 N 25 N / S

26 R(0, 0) 27 R(1, J) 28 R(J, 1) 29 R(J, K) 30 R(K, 1)

31 R(K, J) 32 S 33 S * 0.5 34 S / (12 * N) 35 S / 12

36 S / N 37 TD 38 TD + D(J, K) 39 TR 40 TR + R(J, K)

41 TR + R(K, J) 42 TR <= 30 43 TR >= 30 44 TV + V(J, K) 45 TV + V(K, J)

46 TV <= 30 47 TV > 30 48 TV >= 30 49 TV 50 V(J, 1)

Page 20: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 20 -

[문제 10] 최우수강사찾기

다음은 영어 전문 학원에서 학생들의 토익점수를 사용하여 최우수 담당 강사를 찾는 알고리즘이다.

- 학원에 다니고 있는 총 학생의 수는 500명이다.

- I번째 학생의 토익 점수는 SC(I)로 제공된다.

- I번째 학생의 담당 강사 코드는 T(I)로 제공되며 이때 강사코드는 1부터 10 사이의 값이다.

- 최우수 담당강사는 담당 학생들의 평균 토익점수가 가장 높은 강사이며, 최우수 강사코드를 출력한

다.

- 알고리즘에 사용되는 변수는 다음과 같다.

J : 첨자

S(10) : 강사별 토익점수 합계 배열

C(10) : 강사별 학생 수 배열

B : 강사코드

MA : 강사별 평균 토익점수의 최대값

M(10) : 강사별 평균 토익점수

MT : 최우수 강사코드

Page 21: [ 알고리즘 연습문제 ]pds9.egloos.com/pds/200805/12/29/ALGOLIZUM.pdf · [ 알고리즘 연습문제 ] [문제 1] 국립공원 방문자 다음은 1년 동안 국립공원 방문자에

- 21 -

답항 보기

1 300 2 350 3 400 4 450 5 500

6 B = 0 7 B = J + 1 8 B = S(J) 9 B = SC(J) 10 B = T(J)

11 C + 1 12 C(B) + 1 13 C(B) - 1 14 C(B) / 2 15 J < 10

16 J < 11 17 J <= 10 18 J <= 11 19 J = 11 20 J > 10

21 J > 11 22 J > 500 23 J >= 10 24 J >= 11 25 M(B) < MA

26 M(B) > MA 27 M(J) < MA 28 M(J) = MA 29 M(J) > MA 30 MT = 0

31 MT = 1 32 MT = J + 1 33 MT = J 34 MT = M(J) 35 S + C

36 S(0) 37 S(J) * C(B) 38 S(J) * C(J) 39 S(J) + 1 40 S(J) + C(J)

41 S(J) / C(B) 42 S(J) / C(J) 43 S(J) 44 S(K) 45 S(T(J))

46 SC(0) 47 SC(B) 48 SC(J + 1) 49 SC(J) 50 SC(S)