Java 코딩테스트 공부/Java 알고리즘 공부

Java 배열 파트 알고리즘2

daramG 2022. 8. 5. 16:36

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/dashboard

 

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

 

 

문제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 + " ");
		}
	}
}