멀리 보는 연습

JAVA_festival 문제 풀이_1 본문

Study/Java Festival

JAVA_festival 문제 풀이_1

푸실리 2021. 6. 27. 23:16

JAVA FESTIVAL : D-1

 

내일은 자바 페스티벌이 열린다. 자바 페스티벌은 학원에서 진행되는 죽음(?)의 페스티벌이다. 농담이고, 부루마블 판에 주사위를 던져 나오는 숫자에 해당하는 문제를 풀면 점수를 얻는 방식으로 진행되는 일종의 게임같은 축제라고 생각하면 된다. 1등 팀과 2등 팀에게는 상금이 주어진다.

 

우리 팀의 목표는 1등이다. 말이 씨가 된다고 했으니까 적어본다. 팀원들 모두 열심히 해줘서 나도 덩달아 열심히 하게 된다. 아래는 병관쌤이 친절하게 단톡방에 올려주신 문제들을 내 나름대로 찾아보고 고민해보면서 푼 과정들이다. 

 

 

문제 1.

거스름돈을 입력 받아 내어줘야 하는 지폐의 개수를 출력하는 프로그램을 작성하시오.

단, 최대 단위는 10000원, 최소 단위는 100원

		Scanner sc = new Scanner(System.in);
		System.out.print("거스름돈 : ");
		int money = sc.nextInt();
		int[] arr = { 10000, 5000, 1000, 500, 100};
		
		
		System.out.println("잔돈 반환");
		for(int i = 0;i<arr.length;i++) {
			int answer = money/arr[i];
			money%=arr[i];
			System.out.println(arr[i]+"원 : "+answer+"개");
		}

 

문제 2. 

현재 몸무게와 목표 몸무게를 각각 입력 받고, 주차 별 감량 몸무게를 입력 받아 목표 달성 시, 축하 메시지를 띄우는 프로그램을 구현하시오. 

		Scanner sc = new Scanner(System.in);
		System.out.print("현재 몸무게 : ");
		int now = sc.nextInt();
		System.out.print("목표 몸무게 : ");
		int future = sc.nextInt();
		
		int i = 1;
		int j = 0;
		while(true) {
			System.out.print(i+"주차 감량 몸무게 : ");
			j = sc.nextInt();
			now -= j;
			if(future >= now ) break;
			i++;
			}
		System.out.println(now+"kg 달성! 축하합니다.");

	}

 

문제 3. 일한 시간을 입력받아 총 임금을 계산하는 시급 계산기입니다. 시급은 5000원이며, 8시간보다 초과근무한 시간에 대해 1.5배의 시급이 책정됩니다.

		Scanner sc = new Scanner(System.in);
		System.out.print("일한 시간을 입력하세요 : ");
		int hour = sc.nextInt();
		
		if(hour>8) {
			System.out.println("총 임금은 "+(8*5000+(hour-8)*7500)+"원 입니다.");
			
		}
		else {
			System.out.println("총 임금은"+(hour*5000)+"원 입니다.");
		}

 

문제 4.

1-2+3-4+5-6+...+99-100 을 계산하여 답을 출력하시오.

		int sum = 0;
		for (int i = 1,j=-2;i<100;i+=2,j-=2) {
			System.out.print(i+" "+j+" ");
			sum += i+j;
		}System.out.println();
		System.out.println("결과 : "+ sum);

 

문제 5.

(77*1) + (76+2) + ... + (1*77) 을 계산하여 결과를 출력하시오.

int sum = 0;
		for(int i = 77,j=1;i>=1;i--,j++) {
			sum += i*j;
		}System.out.println(sum);

 

문제 6. 

정수를 입력받아 1의 자리에서 반올림 한 결과를 출력하시오.

 

		Scanner sc = new Scanner(System.in);
		System.out.print("숫자 입력 : ");
		int num = sc.nextInt();
		
		int result = (num+5)/10;
		System.out.println(result+"0");

 

문제 7.

행 개수를 입력 받아 다음과 같이 삼각형을 출력하시오. 

	Scanner sc = new Scanner(System.in);
		System.out.print("행 개수 : ");
		int num = sc.nextInt();
		
		for(int i = num;i>0;i--) {
			for(int j = 0; j<i;j++) {
				System.out.print("*");
				
			}System.out.println();

 

문제 8.

8칸 크기의 배열을 선언하고 랜덤수로 초기화 한 후 가장 큰 수와 작은 수를 각각 출력하시오. 

		int[] arr = new int[8];
		Random random = new Random();
		int max = 0;
		int min = 0;
		for (int i = 0; i < arr.length; i++) {
			arr[i] = random.nextInt(100);

		}
		System.out.println(Arrays.toString(arr));

		Arrays.sort(arr);
		System.out.println("가장 큰 값 : " + arr[7]);
		System.out.println("가장 작은 값 : " + arr[0]);

 

문제 9.

for문을 사용하여 A~Z까지 출력하시오.

		for(char a ='A'; a<='Z';a++) {
			System.out.print(a+" ");
		}

 

문제 10. 

행 개수를 입력 받아 다음과 같이 삼각형을 출력하시오.

		Scanner sc = new Scanner(System.in);
		System.out.print("행 개수 : ");
		int num = sc.nextInt();
		
		for(int i = 1; i<=num;i++) {
			for(int j = 0; j<i;j++) {
				System.out.print("*");
				
			}System.out.println();

 

문제 11. 

중복 없이 숫자를 뽑는 로또 프로그램을 만드시오.

		Random random = new Random();
		Scanner sc = new Scanner(System.in);
		int[] arr = new int[6];
		
		for(int i = 0;i<6;i++) {
			arr[i] = random.nextInt(45)+1;
			for(int j = 0 ; j<i;j++) {
				if(arr[i]==arr[j]) {
					i--;
				}
			}
			
		}for(int i = 0; i<6;i++) {
			System.out.println("행운의 숫자 : "+arr[i]);
		}

 

문제 12.

다음과 같은 결과를 출력하세요. 

		for(int i = 1;i<6;i++) {
			for(int j = 0; j<5-i;j++) {
				System.out.print(" ");
			}
			for(int k =0;k<i;k++) {
				System.out.print("*");
			}System.out.println();
		}

 

문제 13. 

정수 N을 입력받아, N*N 배열에 다음과 같이 숫자를 저장하고 출력하시오.

		Scanner sc = new Scanner(System.in);
		System.out.print("정수 입력 : ");
		int num = sc.nextInt();
		
		int[][] arr = new int[num][num];
		
		int k = 1;
		for(int i = 0; i<arr.length;i++) {
			for(int j =0;j<arr[i].length;j++) {
				arr[j][i]=k;
				k++;
			}
		}for(int i = 0; i<arr.length;i++) {
			for(int j =0;j<arr[i].length;j++) {
			System.out.print(arr[i][j]+" ");	
			
				
			}System.out.println();
			}

 

문제 14.

소인수분해를 해주는 프로그램을 작성하시오.

 

	Scanner sc = new Scanner(System.in);
	System.out.print("소인수분해할 수를 입력하세요. : ");
	int num = sc.nextInt();
	System.out.println(num+"=");
	
	while(true) {
		int i = 2;
		while(true) {
			if(num%i==0) {
				num/=i;
				System.out.println(i);
				break;
			}else {
				i++;
			}
			
		}if(num==1) {
			break;
		}else {
			System.out.println("*");
		}
	}

 

문제 15. 

10진수 정수를 입력 받아 2진수로 변환해서 출력하시오.

		Scanner sc = new Scanner(System.in);
		System.out.print("숫자 입력 : ");
		int i = sc.nextInt();
		
		String binaryString = Integer.toBinaryString(i);
		System.out.println(binaryString);

 

다음 편에서 계속됩니다..

 

'Study > Java Festival' 카테고리의 다른 글

JAVA_festival 보너스 문제 풀이  (0) 2021.06.27
JAVA_festival 문제 풀이_2  (0) 2021.06.27
Comments