728x90

scpc d13   84번문제 시간초과가뜬다...

 

1080

1, 2, 3 ... 을 계속 더해 나갈 때,
그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지
계속 더하는 프로그램을 작성해보자.

즉, 1부터 n까지 정수를 계속 더한다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다.

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		
		Scanner sc =new Scanner(System.in);
		
		int  n = sc.nextInt();
		int sum =0;
		int i=0;
		for(i =0; i<100000000; i++) {
			sum = sum+i;
			
			if(sum>=n)break;
		}
		System.out.println(i);
	}
}

1081

1부터 n까지, 1부터 m까지 숫자가 적힌
서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.

참고
중첩의 원리...
반복 실행 구조도 조건 실행 구조와 마찬가지로 중첩의 원리가 적용된다.
반복 실행 구조를 중첩하면 원하는 반복 구조를 다양하게 만들어 낼 수 있다.

 

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        for(int i=1; i<=a; i++) 
        {
            for(int n=1; n<=b; n++) 
            {
                System.out.println(i+" "+n);
            }
        }
               
    }
}

1082

16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
영일(01)이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다.

A, B, C, D, E, F 중 하나가 입력될 때,
1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		
		Scanner sc =new Scanner(System.in);
		
		String  a = sc.nextLine();
		
		int num = Integer.parseInt(a,16);
		
		 for(int i=1; i<16; i++) {
                
                System.out.format("%X*%X=%X%n",num,i,num*i);
            }
	}
}

1083

 

3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.

참고
중첩의 원리
반복 실행 구조 안에 선택 실행 구조를 자유롭게 중첩할 수 있다.

예시
int i;
for(i=1; i<=100; i++) //1부터 100까지 반복
{
  if(i%3==0 || i%5==0) printf("%d ", i); //3또는 5의 배수인 경우 그 수 출력
}

** 3 6 9 게임은?
여러 사람이 순서를 정해 순서대로 수를 부르는 게임이다.
만약 3, 6, 9 가 들어간 수를 자신이 불러야 하는 상황이면, 대신 "박수" 를 쳐야 한다.
33까지 진행했다면? "짝짝"과 같이 박수를 두 번 치는 형태도 있다.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		
		Scanner sc =new Scanner(System.in);
		
		int  a = sc.nextInt();
		
		for(int i=1; i<=a; i++) {
			if(i%3 ==0) {
				System.out.print("X ");
			}else{
				System.out.print(i+" ");
			}
		}
	}
}

1084

빨강(red), 초록(green), 파랑(blue) 빛을 섞어
여러 가지 빛의 색을 만들어 내려고 한다.

빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때,
(빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.)

주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과
총 가짓 수를 계산해보자.

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
			Scanner sc =new Scanner(System.in);
		
		   int r = sc.nextInt();
	       int g = sc.nextInt();
	       int b = sc.nextInt();
	       
	       int count = 0;
	       
	       for(int i=0; i<r; i++) {
	    	   for(int j=0; j<g; j++) {
	    		   for(int q =0; q<b; q++) {
	    			   System.out.printf("%d %d %d\n",i,j,q);
	    			   count++;
	    		   }
	    	   }
	       }
	       
	       System.out.println(count);
	}

}
728x90

+ Recent posts