문제7 :
첫째 줄에 문제 개수 n, 둘째 줄에 n개의 문제 채점 결과를 1과 0으로 나타낸다.
문제가 맞을 경우 1, 틀릴 경우 0으로 표시한다.
연속적으로 맞출 경우 가산점을 부여한다. 틀릴 경우 가산점 초기화
( 0 1 1 1 0 1 일 경우 점수 합이 4가 아니라 0 + 1 + 2 + 3 + 0 + 1)
소스코드 :
import java.util.*;
class Main {
public int solution(int n, int[] arr) {
int answer = 0;
int acc = 0;
for(int i=0; i<n; i++) {
if(arr[i] == 0) {
acc = 0;
}
else if (arr[i] == 1) {
acc++;
answer += acc;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++) {
arr[i] = sc.nextInt();
}
System.out.print(T.solution(n, arr));
}
}
풀이 :
총 합을 저장하는 answer와 가산점인 acc을 이용해 계산한다.
문제8 :
첫 줄에 n 입력되고 두 번째 줄에 n개의 정수 입력된다.
입력된 순서대로 등수 출력하라
입력예제
5
89 87 91 100 77
출력예제
3 4 2 1 5
소스코드 :
import java.util.*;
class Main {
public int[] solution(int n, int[] arr) {
int[] answer = new int[n];
for(int i=0; i<n; i++) {
int rank = 1;
for (int j=0; j<n; j++) {
if (arr[i] < arr[j]) rank++;
}
answer[i] = rank;
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++) {
arr[i] = sc.nextInt();
}
for(int x : T.solution(n, arr)) {
System.out.print(x + " ");
}
}
}
'Java 코딩테스트 공부 > Java 알고리즘 공부' 카테고리의 다른 글
Java 배열 파트 알고리즘4 (0) | 2022.08.07 |
---|---|
Java 배열 파트 알고리즘3 (0) | 2022.08.06 |
Java 배열 파트 알고리즘1 (0) | 2022.08.04 |
자바 배열 파트 알고리즘2 / 7월 13일 (0) | 2022.07.13 |
자바 배열 파트 알고리즘1 / 7월 12일 (0) | 2022.07.12 |