배열 예제

수민·2022년 5월 19일
0

개발

목록 보기
12/45

배열의 n개를 입력받아 합한값과 최댓값을 출력


int n=sc.nextInt();
ace[]=new int[n] 에 크기를지정

for문을돌려
ace[i]=배열의 값을 전달
0번쨰 값 ,1번쨰 값 ,2번쨰 값,3번쨰값 이런식으로.
sum+=ace[i]에 있는값을 전달
모든데이터를 sum에다가 저장

if(data[i]>max) 현재내가 보고있는데이터가
max=data[i] 최대값보다 크다면 최대값으로 전달.

ace[i]>max 보다크면 max에다가 ace[i]값을 전달해준다

그럼 max에 20있다고 치면
ace[i]>max
60
ace가 크기떄문에 max에다가 옮겨준다
이런원리이다.****

그리고 위에처럼 하게되면 음수를 입력하면
오류가발생

변경해준다.

다음과 같은 예제는 이런식으로 풀어볼수있다.
![]

역순으로 하면된다.

int tmp부분에 배열의 끝자리부분을 저장.
for문을 n-2로 하게되면 배열-2 부분부터 시작해서
검사를 한다
ace[i+1]=ace[i] 는
i+1 부분에 i를 삽입해준다
한칸씩 오른쪽으로 삽입해주는것.
ace[0]에는 아까 삽입했던 tmp를 넣어준다.

그러고출력.

//n이 소수인지 알고 싶으면 2~n-1 까지 나누어봐서 나누어떨어지면 소수가아님.
//2,3,...,n-1 // 2/n n의약수가 4보다 클수 없기떄문에

    for(int i=2; i<=n/2; i++){   //n이 소수인지 검사하는것.
        if(n%i==0) {  //나누어 떨어진다면 약수가아님. //not prime
          isPrime=false;   //나누어떨어지면 false
        }

        if(isPrime)   //isPrime이 참이라면
            System.out.println(n);   //출력
    }

모든쌍을 검사해본다.

j=a+1부터 시작해야 겹치지가 않는다

초기문을 0,0으로 설정하면
0,0 1,1 2,2이런식으로 겹치기떄문에
그냥 값이 증가된다
이걸 방지하기위해
j를 a+1부터 시작하면 겹치지않고
다음 자리부터 쭉 검사를 한다.
for문 구조는

0,1
0,2
0,i-1까지 계산 그다음
1,1
1,2
1,3
이런식으로
맞는쌍을 찾으면 count값을 증가시켜주는 것!

profile
헬창목표

0개의 댓글