본문 바로가기

KOSTA

KOSTA 교육(알고리즘, 자료구조)

배운 내용

 

  1. 알고리즘

1. algorithm(알고리즘)

algorithm은?

컴퓨터를 이용하여 주어진 문제를 풀기 위한 방법이나 절차.

알고리즘과 자료구조는 모든 언어에서 사용 되지만 자바를 사용하여 체험학습 의미로 예제를 풀어보자

 

  • 위의 예제는 배열의 요소 수를 입력하고 각 배열의 값을 입력한 후에 검색하여 해당 값을 호출하는 예제이다.
  • seqSearch메소드의 파라미터 값을 선언한다.
  • int i = 0을 선언하여 인덱스 값을 선언
  • while문을 통하여 반복하고 i와 배열 n이 같다면 검색을 실패하고 배열과 검색값이 같다면 검색이 성공할 수 있도록 선언한다.

 

  • 이번 예제는 중앙값을 두어 중앙값보다 작거나 크다면 그 나머지 값을 버려서 효율적인 계산을 하는 예제이다.
  • 이런 계산을 하려면 처음과 끝을 알아야 하기 때문에 각 끝 별 인덱스 값을 구한다.
  • do while문을 사용하여 무조건 do엔 무조건 중앙값으로 시작하도록 하고 중앙값이 입력값과 같다면 바로 return을하고 키값이 크다면 중앙 값보다 작은 값을, 작다면 큰 값을 버려서 좁힌다.

 

  • 문제로 주어진 Main메소드이다.
  • switch문으로 각 메소드별 호출을 하게끔 선언되어있다.

  • 푸시하기 위해서는 먼저 ptr이 max보다 크면 예외가 발생하기 때문에 예외를 처리해준다.
    그리고 stk[prt += 1] = x; 를 리턴해주어 x에 배열이 하나씩 추가될 수 있도록 한다.
  • 데이터를 팝 해주기 위해선 먼저 배열 값이 없으면 예외가 발생하기 때문에 처리해준다.
    그리고 정상에 있는 것을 꺼내야 하기 때문에 -로 감해준다.
  • 정상에 있는 데이터를 찾기 위해선 일단 배열 값이 있어야 하며 ptr이 0부터 시작하기 때문에 -1를 해준다.
  • 검색은 i가 ptr -1이 되어야 하고 (이는 위에서 설명했듯이 인덱스 값을 고려) i는 0보다 커야하며 i는 -1씩 감되어야 한다.
    그리고 x와 배열값이 같으면 0을 return하여 검색되게 한다.
  • 아래서 위로 출력하기 위해선 ptr이 있어야 하며 i가 ptr보다 크고 증가되어 반복되며 하나씩 출력할 수 있게 한다.