728x90
반응형
728x90
반응형

문제는 다음과 같습니다.

https://www.acmicpc.net/problem/2579


 
import java.util.Scanner;

public class Test{
	public static void main(String[] args){
		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();
		}
		int dp[] = new int[n];
		dp[0] = arr[0];
		dp[1] = Math.max(arr[0],0) + arr[1];
		dp[2] = Math.max(arr[0], arr[1])+ arr[2];
		for(int i=3; i<n; i++) {
			dp[i] = Math.max(dp[i-3]+arr[i-1], dp[i-2]) + arr[i];
		}
		System.out.println(dp[n-1]);
		sc.close();
	}
}
 








결과는 다음과 같습니다.


728x90
반응형
728x90
반응형

문제는 다음과 같습니다.

https://www.acmicpc.net/problem/14501


 
import java.util.Scanner;

public class Test14501 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] t = new int[16]; //상담을 처리해야하는 기간
		int[] p = new int[16]; //상담 완료 후 받을 수 있는 금액
		int[] dp = new int[16]; //얻을 수 있는 최대 수익

		for(int i=1; i<=n; i++){
			t[i] = sc.nextInt(); 
			p[i] = dp[i] = sc.nextInt(); 
		}

		for(int i=2; i<=n; i++){
			for(int j=1; j<i; j++){
				if(t[j]<=i-j){
					dp[i] = Math.max(p[i]+dp[j], dp[i]);
				}
			}
		}

		int max=0;
		for(int i=1; i<=n; i++){
			if(t[i]+i<=n+1){
				if(max<dp[i]){
					max = dp[i];
				}
			}
		}
		System.out.println(max);
		sc.close();
	}
	
}
 





결과는 다음과 같습니다.


728x90
반응형
728x90
반응형

문제는 다음과 같습니다.

https://www.acmicpc.net/problem/8958


 
import java.util.Scanner;

public class Test8958 {
	public static void main(String[] args) { 
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.nextLine();
		
		for(int i=0; i<n; i++) {
			String input = sc.nextLine();
			int result=0;
			int score=0;
			for(int j=0; j<input.length(); j++) {
				if(input.charAt(j)=='O') {
					score++;
					result +=score;
				}else {
					score=0;
				}
			}
			System.out.println(result);
		}
		 	
	}
}
 





결과는 다음과 같습니다.


728x90
반응형
728x90
반응형

문제는 다음과 같습니다.

https://www.acmicpc.net/problem/2577

  
import java.util.Scanner;

public class Test2577 {
    public static void main(String[] args) { 
        Scanner sc = new Scanner(System.in);
        int num[] = new int[10];
        int array[] = new int[3];
        int result = 1;
	    
        for(int i=0; i<3; i++){
            array[i] = sc.nextInt();
        }
        result = array[0] * array[1] * array[2];
        //System.out.println(result);

        while(result>0) {
            int chk = result % 10; //나머지를 chk번째 배열에 넣어 1씩 추가
            result = result / 10;
            num[chk] += 1;
        }
	    
        for(int i=0; i<num.length; i++){
            System.out.println(num[i]);
        }
		 	
    }
}
 




결과는 다음과 같습니다.


728x90
반응형
728x90
반응형

문제는 다음과 같습니다. 

https://www.acmicpc.net/problem/11053

문제 이해부터가 힘드네요....

가장 긴 증가하는 부분 수열이라....

주어진 수열 중에서 증가하는 수열의 길이를 가장 길게 만들어라??라는 의미인데요.




  
import java.util.Scanner;
 
public class Test11053 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //수열의 크기 N, N크기의 수열 arr[], 증가하는 부분 수열의 길이 dp[i]
        int N = sc.nextInt();
        int arr[] = new int[N];
        for(int i=0; i<N; i++){
        arr[i] = sc.nextInt();
        }
        int max=1;
        int dp[] = new int[N];
        for(int i=0; i<N; i++){
            dp[i]=1;
            for(int j=0; j<i; j++){
                if(arr[i]>arr[j] && dp[i]<=dp[j]){
                    dp[i]+=1;
                    if(max<dp[i]){
                        max = dp[i];
                    }
                }
            }
        }
        System.out.println(max);
        sc.close();
    }
}
 


결과는 다음과 같습니다.



728x90
반응형
728x90
반응형

문제는 다음과 같습니다. 

https://www.acmicpc.net/problem/9095


 
import java.util.Scanner;
public class Test9095 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt(); //방법의 수를 테스트할 갯수
        int[] arr = new int[11];
		
        arr[1]=1; 
        arr[2]=2;
        arr[3]=4;
        //경우의 수 추출
        for(int i=0; i<T; i++){
            int n = sc.nextInt();
            for(int j=4; j<=n; j++){
                arr[j]=arr[j-3]+arr[j-2]+arr[j-1];
            }
            System.out.println(arr[n]);
        }

    }
}
 


결과는 다음과 같습니다.


728x90
반응형
728x90
반응형

문제는 다음과 같습니다.

https://www.acmicpc.net/problem/11399



 
import java.util.Scanner;

public class ATMTest {
	public static void main(String[] args){
		System.out.println("백준알고리즘 11399번 ATM");
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt(); //인원 수 입력
		int[] people = new int[N]; //배열 생성
		for(int i=0; i<N; i++){
			people[i] = sc.nextInt();
		}
		for(int i=0; i<people.length; i++){ //정렬
			for(int j=i+1; j<people.length; j++){
				if(people[i]>people[i+1]){
					int imsi = people[i];
					people[i] = people[i+1];
					people[i+1] = imsi;
				}
			}
		}
		int min=0;
		for(int i=0; i<people.length; i++){
			for(int j=0; j<=i; j++){
				min += people[j];
			}
		}
		System.out.println(min);
	}
}
 

결과는 다음과 같습니다.



728x90
반응형
728x90
반응형

문제는 다음과 같습니다.

https://www.acmicpc.net/step/3

 

 
import java.util.Scanner;

public class ForTestMain {
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	int a = sc.nextInt();
        
    	System.out.println("2739=======================");
    	for(int i=1; i<=9; i++){ //2739번
    		System.out.println(a+" * "+i+ " = "+ a*i);
    	}
        
    	System.out.println("2741=======================");
    	for(int i=1; i<=a; i++){ //2741번
    		System.out.println(i);
    	}
        
    	/*System.out.println("2742=======================");
    	for(int i=a; a>=1; a--){ //2742번, a값이 변해서 주석처리했습니다.
    		System.out.println(a);
    	}*/
        
    	System.out.println("2438=======================");
    	for(int i=1; i<=a; i++){ //2438번
    		for(int j=1; j<=i; j++){
    			System.out.print("*");
    		}
            System.out.println();
    	}
        
    	System.out.println("2439=======================");
    	for(int i=1; i<=a; i++){ //2439번
    		for(int j=a-i; j>0; j--){
    			System.out.print(" ");
    		}
    		for(int k=i; k>0; k--){
    			System.out.print("*");
    		}
    		System.out.println();
    	}
        
    	System.out.println("2440=======================");
    	for(int i=a; i>=1; i--){ //2440번
    		for(int j=1; j<=i; j++){
    			System.out.print("*");
    		}
            System.out.println();
    	}
        
    	System.out.println("2441=======================");
    	for(int i=0; i<a; i++){
    		for(int j=a-i; j<a; j++){
    			System.out.print(" ");
    		}
    		for(int k=a-i; k>0; k--){
    			System.out.print("*");
    		}
    		System.out.println();
    	}
        
    }       
}

결과는 아래와 같습니다.

 

728x90
반응형
728x90
반응형

+ Recent posts