배열에서 최대값 구하기



접근방법


1. 배열의 첫번째 index에 해당하는 값에 max value 라고 변수 지정해준다.


2. max value 변수를 배열의 길이만큼 하나하나 비교한다.


3. 비교해서 기존의 max value보다 배열의 index에 해당하는 값이 크면 max value에 값을 바꿔준다.


4. 반복을 다 돌면 배열에서 가장 큰 값이 max value가 된다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package test1;
 
public class MaxValue {
 
    public static void main(String[] args) {
        
        int[] value = {10,5,2,7,15,30,50,100,150,3,5,7};
        int valueLength =value.length;
        int maxValue = value[0];
        int maxIdx = 0;
                
        MyMethod1 mymethod1 = new MyMethod1();
        System.out.println(mymethod1.findMaxValue(value, valueLength, maxValue));
        
        System.out.println(mymethod1.findMaxNumber(value, valueLength, maxIdx));
 
    }
 
}
 
 
class MyMethod1{
    
    // 최대값 구하기
    int findMaxValue(int[] value,int valueLength, int maxValue){
        for(int i=0; i<valueLength; i++){
            if(value[i] > maxValue){
                maxValue = value[i];
            }
        }
        
        return maxValue;
    }
    
    // 최대값의 배열Index 구하기
    int findMaxNumber(int[] value,int valueLength, int maxIdx){
        for(int i=0; i<valueLength; i++){
            if(value[i] > value[maxIdx]){
                maxIdx = i;
            }
        }
        return maxIdx;
    }
    
}
cs


같은 방식으로 최대값의 Index값도 확인 할 수 있다.


출력결과



배열에서 중복되는 값 구하기


접근방법


1. value 배열의 John값을 Eric, Mike, Kelly ... 마지막 원소의 값까지 1:1 비교한다.


2. String 값이 같은 것은 John, Mike , Kelly


3. 2번째 Eric을 Mike Kelly ... 순으로 비교


4. 자기자신과는 비교하지 않고 자기 다음 이름과 비교만 하면 된다.


5. 이름이 같다면 배열에 추가



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package test1;
 
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;
 
public class SameNameFind {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String[] value = {"John","Eric","Mike","Kelly","Mike","Tom","Kelly","Henly","John"};
        int valueLength = value.length;
    
        findNameMethod findnamemethod = new findNameMethod();
        System.out.println(findnamemethod.findSameName(value, valueLength));
        findnamemethod.findSameName2(value, valueLength);
        
    }
 
}
 
/*
 * 1. value 배열의 John값을 Eric, Mike, Kelly ... 마지막 원소의 값까지 1:1 비교한다.
 * 2. String 값이 같은 것은 John, Mike , Kelly
 * 3. 2번째 Eric을 Mike Kelly ... 순으로 비교
 * 4. 자기자신과는 비교하지 않고 자기 다음 이름과 비교만 하면 된다.
 * 5. 이름이 같다면 배열에 추가
 * 
 */
 
 
class findNameMethod{
    
    // 배열에서 중복되는 값 찾아 존재하면 중복되는 값 새 배열에 추가
    ArrayList<String> listA = new ArrayList<String>();
    ArrayList<String> findSameName(String[] value, int valueLength){
        for(int i=0; i<valueLength-1; i++){// 자기 자신을 제외한 모든 이름 비교
            for(int j=i+1; j<valueLength; j++){ // 앞에 비교한 이름을 비교하지 않는다.
                if(value[i] == value[j]){
                    listA.add(value[i]); // 같으면 추가한다.
                }
            }
        }
        return listA;
    }    
    
    // 각각 어떻게 비교하는지 확인
    void findSameName2(String[] value, int valueLength){
        for(int i=0; i<valueLength-1; i++){// 자기 자신을 제외한 모든 이름 비교
            for(int j=i+1; j<valueLength; j++){ // 앞에 비교한 이름을 비교하지 않는다.
                System.out.println(value[i]+","+value[j]);
            }
        }
    }    
}
cs


출력결과



배열에서 중복되는 값이 무엇인지, 어떻게 비교하는지 출력결과를 통해 알수 있었다.


마지막으로 해당 소스를 첨부한다.



MaxValue.java

SameNameFind.java




+ Recent posts