반응형

이번에는 최고, 최저값을 어떻게 알아볼 수 있을지 알아봅시다.

우선 문제를 봅시다.

SEQUENCES ARE ZERO-TERMINATED

READ A SEQUENCE FROM IN

WRITE THE MIN VALUE TO OUT.I

WRITE THE MAX VALUE TO OUT.A

0을 기준으로 최고점은 OUT.A에 최저점은 OUT.I에 출력하라는 소리네요.

간략히 표로 한번 보겠습니다.

 입력

14

73

58 

21 

87 

OUT.I 

14 

21 

OUT.A 

73 

87 

다음과 같이 됩니다.

최소값과 최대값을 출력해줘야하기떄문에 변수를 두개를 정해둡니다.

MIN, MAX 에 해당 입력값을 비교하여 MIN에는 최소값 MAX에느 최대값을 넣습니다.

그리고 입력이 0일때는 최소값과 최대값을 OUT.I와 OUT.A에 출력하고 0으로 초기화해줍니다.

또한 OUT.I 와 OUT.A 의 경우 0일때는 출력을 하지 않습니다. 

따라서 OUT.I 는 14,21 을 출력하고 OUT.A는 73,87을 출력합니다.


0이 최소 혹은 최대값이 될수있기 때문에 0일경우에는 입력값을 그대로 입력하도록 합니다.


좀 복잡하게 보이지만 간단합니다.

MIN,MAX값이 0이면 입력값을 넣어줍니다.

입력값이 0이 아니면 MIN값과 비교하여 작으면 MIN에 입력값을 넣어줍니다.

입력값이 0이 아니고 MIN값보다 크면 MAX값과 비교하여 크면 MAX값에 입력값을 넣어줍니다.

그것도 아니라면 처음으로 돌아갑니다.

입력값이 0이면 MIN,MAX 값을 출력합니다.

1. MAX 값을 구하는 코드입니다.

오른쪽이 최대값을 확인하는 공식입니다.

입력된 값이 클경우 입력된 값을 저장하고 입력된 값이 작을경우 이전값을 저장합니다.

그리고 0이 올경우 저장한 값을 왼쪽으로 반환해줍니다.

2,3. MIN 값을 구하는 코드입니다.

중간 오른쪽에있는 부분에서는 0일경우 bak에 저장된 값을 출력합니다.

0이 아닐경우 bak의 값과 입력값을 왼쪽에 던져서 최소값을 계산합니다.


반응형

+ Recent posts