배열 array 예제/최대값/최소값/문자길이,개수/
예제1) 사용자에게 입력을 통해 배열에 값을 담아서 해당 배열에 가장 작은값 즉 최소값을 구하는 프로그램 작성.
배열을 받아 최대값, 최소값을 구하는 예제는 대표적 예제중 하나입니다. 배열의 크기는 5라고 가정합시다. 즉, arr[0]~arr[4]까지 입력을 받고 그 값들 중 최소값을 구합니다. For문을 통해 i=0에서 arr.length까지 arr[0]부터 받아줍니다. arr[i]=sc.nextInt();로 받습니다.
제가 항상 어려워했던 것 중 하나는 변수를 두는것입니다. 즉, 최소값을 구하던, 최대값을 구하던 그 값을 받아줄 변수를 두어야 하는것에 항상 제가 어려워했습니다. int min=1000; 즉 입력 받는 값을 0~1000까지라고 가정했습니다.
여기서 for문을 통해서 if문을 두어 min>arr[i]로 하고 그 값이 작다면 새로운 min값으로 그 값을 받아줍니다. 그렇게 if문을 통해 min값을 출력합니다.
만약에 최대값을 구한다하더라도 크게 다르지 않습니다. int max =0; 으로 두고, if( max<arr[i]) 로 구성하고 if문 안에 max=arr[i]로 둔다면 최대값을 구하는 코드가 되겠습니다.
또 포인트는 최대값이든 최소값이든 몇번째인지도 함께 구해보았습니다. index라는 변수를 두어서 0으로 초기화합니다. For문을 한번 들어가면 index =1; 로 만들기 위해 index=i+1;로 설정하여 if문으로 조건이 맞아 들어온다면 min과 max둘다 그 값을 index로 하나 카운트 해서 기록합니다.
예제2) 월~일까지 초기화된 문자열 배열을 만들고, 0~6까지 숫자를 입력받아 입력한 숫자와 같은 인덱스에 있는 요일 출력 및 잘못 입력시 "잘못 입력하셨습니다." 작성
0~6까지 숫자를 입력받습니다. 그리고 요일을 담을 배열 sArr1을 만듭니다.그 배열을 월~일까지 넣어줍니다.
num값은 숫자를 입력을 받기 때문에 0~6까지 이면 진행하고 아니면 잘못 입력하셨습니다를 출력하기 위해 if문을 받습니다.
for문을 통해 배열 인덱스값들을 출력하고 if문을 통해 그 인덱스와 요일을 맞추어 출력합니다.
예제3) 문자열 입력 받아 그 문자의 길이 개수를 출력(중복도 넣는다.)
중복을 허용하면 다음과 같습니다. hello를 입력받으면 h,e,l,l,o를 문자길이로 출력 받고, 5개로 출력을 받는 예입니다.
word로 문자열을 입력받고 그것을 다시 cArr[i] 배열에 for문을 통해 word.charAt(i) 함수로 정의합니다. 그리고 따옴표 출력 관련해서 마지막 단어는 따옴표를 출력하지 않기 위해서 if문에서 !i==cArr.lenght-1 조건을 겁니다. 마지막 단어는 그냥 출력합니다.
예제4) 문자열 입력 받아 그 문자의 길이 개수를 출력(중복은 넣지 않는다.)
중복을 허용하지 않습니다. hello 입력 받으면 h,e,l,o를 출력, 문자 개수 4개를 출력해야합니다. 생각보다 어렵습니다. 하지만 하나만 알면 쉽습니다. 중복일 경우 예를 들어 cArr[0]와 word.charAt(0)값이 같으면 중복입니다. 그러니 이는 패스합니다. 아닌 경우 넣습니다. hello의 경우 두개를 비교하면 다르므로 h를 cArr[0]을 넣습니다. word.charAt[1]를 cArr[1]에 넣고 싶지만 중복여부를 확인합니다. cArr배열 [0]값을 보니 h 밖에 없으므로 cArr[1]에 e를 넣습니다.
이런식으로 진행합니다.
중요한 부분은 중복인 l입니다. word.charAt[3]에 l을 cArr 넣고 싶은데 cArr[0]==word.charAt(3) cArr[1]==word.charAt(3) cArr[02]==word.charAt(3) 비교합니다. cArr[2]에 이미 l이 있었습니다.그러면 패스됩니다.
이것을 생각하면서 for문을 만들면 다음과 같습니다.
전체 for문으로 하나씩 배열에 값을 넣어주는 반복문. 그리고 안에 값들을 비교할 for문 같다면 count로 하나 줄이고, break문을 통해 제일 앞에 for문으로 돌아갑니다. 그리고 마지막 if문은 , 출력할때 단어 마지막이 아니고 같지 않을때, 즉 l같은 경우 제외하고 , 를 넣는다고 조건문을 걸어 줍니다.
'자바-자린이의 도전기' 카테고리의 다른 글
배열복사 arraycopy()/Arrays.copyOf/clone (0) | 2022.03.28 |
---|---|
배열복사 (0) | 2022.03.27 |
배열 Array (0) | 2022.03.25 |
Break문/Continue문 (0) | 2022.03.24 |
while문/do while문 (0) | 2022.03.23 |
댓글
이 글 공유하기
다른 글
-
배열복사 arraycopy()/Arrays.copyOf/clone
배열복사 arraycopy()/Arrays.copyOf/clone
2022.03.28 -
배열복사
배열복사
2022.03.27 -
배열 Array
배열 Array
2022.03.25 -
Break문/Continue문
Break문/Continue문
2022.03.24