본문 바로가기

분류 전체보기520

Flag 알고리즘 컴퓨터에서 무언가를 기억하거나 또는 다른 프로그램에게 약속된 신호를 남기기 위한 용도로 프로그램에 사용되는 미리 정의된 비트. 즉, 특정 동작을 수행할지 말지 결정하는 변수를 플래그 라고 부른다. (보통 1비트) 깃발을 올린다 와 내린다 두가지 상태로만 신호를 줄 수 있는 것을 떠올려 보자. 게임에서 사망 플래그 떴다 라는 표현을 사용할 때의 플래그. boolean flag = false; 로 초기값을 두고 사용 한다. boolean 타입은 초기값이 false 로 알고 있다. (아니면 수정 하겠음,,) 그런데 선언만 해주니까 값이 없다고 오류가 뜨는듯 하다. 초기화를 false로 해줘야 할듯 하다. (23.05.20 추가) 사용 하는 이유 : ~~가 있는지 없는지, ~~가 되었는지 안되었는지, ~~가 T.. 2023. 5. 6.
선택 정렬 Exam 03 선택 정렬 예제문을 풀어 보았다. 짚고 넘어가야할 부분 1. 내림차순 출력이므로, if문의 조건식을 확인 해 주기 2023. 5. 6.
선택 정렬 Exam 02 선택 정렬 예제문을 풀어 보았다. 짚고 넘어가야할 부분 1. Random random = new Random(); 을 사용할 때 범위가 0에서 시작 하는 것. 2023. 5. 6.
선택 정렬 Exam 01 선택 정렬 예제문을 풀어 보았다. 짚고 넘어가야할 부분 1. 왜 첫번째 루프문의 조건식의 범위가 arr.length - 1; 인지 // 끝에 비교할 대상이 없다. 2. 왜 안쪽 루프문의 초기식 j는 (i + 1); 인지 // 기준으로 잡은 애를 제외하고 그 다음 값 부터 비교 해야 하기 때문에. 3. 교환 알고리즘 사용. 2023. 5. 6.
선택 정렬 (Selection Sort) 선택 정렬은 현재 위치에 들어갈 값을 찾아서 선택하는 알고리즘 이다. 값을 비교 하면서 찾기 때문에 비교 정렬 이라고도 할 수 있다. 데이터 (값)를 서로 교환 (스왑)하는 과정에서 임시 변수 (tmp) 공간을 필요로 한다. 이 말들이 추상적이기에 아래에 추가 설명이 필요 할듯 하다. 선택 정렬의 전체적인 흐름은 아래와 같다. 루프 첫번째 때 0번째 배열 의 값을 기준으로 잡는다. 1. 배열에서 최소값을 찾는다. 2. 최소값을 0번째 배열에 위치하는 값과 교환한다. // 교환 알고리즘 사용. 3. 다음 루프 부터는 기준이 되었던 앞 자리를 제외한 나머지 값들 중 최소값을 찾아 과정을 반복 한다. 글이라서 개념이 안잡힐 수 있기 때문에 그림을 보자. 마지막 8번째 루프는 돌지 않는 이유가 뒤에 더 이상 비.. 2023. 5. 6.
최대값, 최소값 알고리즘 자바 배열 파트를 공부하다가 최대값, 최소값을 구해야 하는 상황이 생겼다. 먼저, 위와 같은 배열이 있다고 해보자. 위와 같이 최대값을 의미하는 변수 max를 arr[0] 으로 잡아 주는 것이다. arr[0]은 1이고, 1을 기준으로 잡아서 루프를 돌은다. for문 안에 초기식이 i = 1; 인 이유는 arr[0]은 비교할 필요가 없기 때문이다. arr[1] 부터 비교를 해야하기 때문에 초기식은 위와 같게 된다. 반복 1회차를 보자. 만약 arr[0]이 arr[1] 보다 작아 ? true. 그러면, arr[1]의 값을 max에 저장해. 반복 2회차. 만약 arr[1]이 arr[2] 보다 작아 ? true. 그러면, arr[2]의 값을 max에 저장해. 반복 3회차. 만약 arr[2]가 arr[3] 보다 .. 2023. 5. 6.
두 변수의 값 바꾸기 두 변수 x와 y에 저장된 값을 바꾸려면 어떻게 해야 할까 ? int x = 96; int y = 28; x = y; y = x; 로 하면 값이 바뀔까? x = 28; y = 28; 이 되므로, 기존에 x의 값이였던 96은 사라져 버린다. 그래서 이 96을 저장할 임시 공간을 만들어야 한다. int tmp; // 임시로 값을 저장하기 위한 변수 tmp = x; // 1) x의 값을 tmp 공간에 저장 x = y; // 2) y의 값 28을 x 공간에 저장 y = tmp; // 3) x의 값을 저장했던 tmp 공간의 값을 y에 저장 이렇게 식으로 표현해서 이해가 가지 않으면 그림으로 그려 보자. 96을 tmp에 넣고, y 값 28은 x에 넣고, 96을 저장해놓은 tmp의 값을 y로 옮긴다. 글을 올리면서,.. 2023. 5. 6.