Cute Happy Ghost
본문 바로가기
JAVA/Java

20200926_Review(히스토그램)

by JENN_tech7 2020. 9. 27.
728x90
SMALL
  • 배열a에 배열b를 거꾸로 저장시키기
package review;

public class Sample03 {

	public static void main(String[] args) 
	{
		int[] a = new int[11];
		int[] b = new int[a.length];
		
		for (int i = 1; i < a.length; i++) {
			a[i] = i;
			System.out.print(a[i] + " ");

		}//for
		System.out.println(" ");
		for (int i = 1; i < b.length; i++) {
			b[i]= a[11-i] ;
			System.out.print(b[i] + " ");
		}//for
	}
}

졸라 신기한거 알아냄

a[11-i] = b[i]하면 0000 뜨는데 b[i] = a[11-i]하면 거꾸로 잘 저장됨

차암내 ㅠ

뒤에서 앞을 저장하는거슬 잊지말자.....

당연히 배열b에 저장해놓은게 없으니까 0이 뜨지 .....

 

 

 

 

  • 피보나치배열
package review; //피보나치배열
public class Sample05 {

	public static void main(String[] args) 
	{
		int[] fibo = new int[12];

		fibo[0] = 1;
		fibo[1] = 1;
		int sum = 0;

		for (int i = 0; i < fibo.length-2; i++) {
			fibo[i+2] = fibo[i] + fibo[i+1];
			sum += fibo[i];
		}
		System.out.println("sum: " +sum);
	}
}

어제했을때는 for문을 두개써서했던데 어제왜 그렇게했는지 기억이 1도 안나네....

 

 

 

  • 최대 최소 제외해서 합한값 출력
package review;//최대최소 제외 출력

public class Sample06 {

	public static void main(String[] args) 
	{
		int[] a = {45, 66, 84, 55, 64, 88, 99};
		int max = 0;
		int min = 100000;
		int sum = 0;
		
		for (int i = 0; i < a.length; i++) {
			if (max < a[i]) {
				max = a[i];
			}
			if (min > a[i]) {
				min = a[i];//max, min 정상출력
			}
		}//for
		for (int i = 0; i < a.length; i++) {
			if (a[i] != min && a[i] != max) {
			sum += a[i];
			}
		}//for
		System.out.println("합은 : " + sum);
	}	
}

뭐야뭐야 나 어제이거 엄청 어렵게 헀는데 왜때문에 잘 나오는거야? 왜케 바로나오는데;;

나 어제 왜 오류 계속난거지...? max가 99되긴했는데 출력은 안돼서 헤맸는데...

 

 

 

 

  • 히스토그램만들기
package review; //히스토그램
import java.util.Scanner;
public class Sample07 {

	public static void main(String[] args) 
	{
		Scanner in = new Scanner(System.in);

		int a[] = new int[10];

		System.out.println("1부터 100까지의 정수 정수 10개를 입력하시오");
		for (int i = 0; i < a.length; i++) {
			System.out.print((i+1) +"번째 정수 : ");
			a[i] = in.nextInt();

			if (a[i] >100 || a[i] < 0) {
				i--;
				System.out.println("다시 입력하시오 ");
				continue;//continue할떄는 sysout과 증감식밑에
			}
		}
		System.out.print(" 1 - 10 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>0 && a[i] <11) {
				//System.out.println(a[i]);
				System.out.print("*");
			} 
		}
		System.out.print("\n11 - 20 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>10 && a[i] <21) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}
		System.out.print("\n21 - 30 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>20 && a[i] <31) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}
		System.out.print("\n31 - 40 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>30 && a[i] <41) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}
		System.out.print("\n41 - 50 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>40 && a[i] <51) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}
		System.out.print("\n51 - 60 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>50 && a[i] <61) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}
		System.out.print("\n61 - 70 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>60 && a[i] <71) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}
		System.out.print("\n71 - 80 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>70 && a[i] <81) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}
		for (int i = 0; i < a.length; i++) {
			if (a[i]>80 && a[i] <91) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}
		System.out.print("\n91 - 100 : ");
		for (int i = 0; i < a.length; i++) {
			if (a[i]>90 && a[i] <101) {
				//System.out.println(a[i]);
				System.out.print("*");
			}
		}//for
	}
}

이거진짜... 내 노력의 산물이야....

진짜 이거 다하고 눈물날뻔 아 ㅠㅠㅠㅠㅠㅠ

이거하는데만 5시간넘게걸린거같아....

1.스캐너안쓰고 일단 배열 지정해하고, 범위는 1부터 30까지 줄여서해보기

2.스캐너써보기

3.정수10개 제대로 받아보기

4.범위제대로해서 받아보기

이 순서로 해서 결국되긴됐다

마지막은 누가봐도 반복문쓸수있는데 범위에 변수를 어떻게 넣는지 아무리생각해도 내 댁알이에서는 안나오길래 그냥 복붙해버렸다...

그래도 이거한게어디냐고요ㅠㅠ

1-10 사이에 있는 수의 '갯수'만큼 *을 출력하는것을 어케 해야될지 몰랐음 ...

그리고 0<n<101사이에 없는 수는 입력못하게하고 다시 되돌아가고싶었다 

이걸 며칠전에 설명해준거같은데 내가 안써놨는지 모르겠어서 찾아보니까 continue쓴다그래서 썼는데

다시돌아가진않고 그대로받는겨... 그래서 쥐어짜내다가 i--해줘야되는것을 알았고 출력문도 continue위에 써야하는 것을 알았다..

나중에 공부더해보고 이거다시풀면 할만하려나...

그래도 푼게 뿌듯해서 사담이 길어진다 ㅠㅠ

일주일만에 이거푼거면 잘한거아님? 아니 그냥 평범하다고해두자..나한테 기대하지마!!

시간만 있으면 못풀문제는 없다(배웠다는 전제하에)

 

모범답안이 궁금해서 샘한테 카톡했는데

package hanna.step03;
import java.util.Scanner;
public class Histogram {
	public static void main(String[] args) 
	{
		int[] freq = new int[10];
		int size =10;

		for(int i=0;i<10;i++) 
		{
			System.out.println("점수를 입력하시오");
			Scanner scan = new Scanner(System.in);
			int s = scan.nextInt();

			if( s!= 0 )
			freq[(s-1)/10]++;
			else
			freq[0]++;
			}
		for(int i=0; i<size; i++)
		{
			System.out.print((i*10+1)+"-"+(i+1)*10);
			for(int k=0; k<freq[i]; k++)

			System.out.print("*");
   			System.out.println("");
		}
	} 
}

실화냐? 30줄도 안됨; ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

와 어케 한겨 진짜? 근데 봐도 이해가 잘 안되네 ㅎ 머쓱...

 

 

 

 

 

  • 4번째 복습하는 극장예약시스템
package review; //극장예약시스템
import java.util.Scanner;
public class Sample08 {

	public static void main(String[] args) 
	{
		int[] arr = new int[10];

		Scanner in = new Scanner(System.in);
		for(;;) {
			System.out.println("---------------------");

			for (int i = 1; i < 11; i++) 
			{
				System.out.print(i + " ");
			}
			System.out.println("\n---------------------");

			for (int i = 0; i < arr.length; i++) 
			{
				System.out.print(arr[i] + " ");
			}
			System.out.print("\n원하는 좌석번호를 입력하세요(-1은 종료) : ");
			int num = in.nextInt();
			if (num == -1) 
				break;
			
			if (arr[num-1] == 0) {
				arr[num-1] = 1;
				System.out.println("예약되었습니다");

			} 
			else if (arr[num-1] == 1) {
				System.out.println("이미 예약된 자리입니다");
			}
		}

	}
}

진짜 내가 너 한번에 꼭 짠다...

오늘도 결국 실수를 했어

아니 마지막에 else if가 아니라 꼭 if를 쓰네.... 또 잘못되곸ㅋㅋㅋㅋ

그리고 배열은 위에 선언해주자

728x90
LIST

'JAVA > Java' 카테고리의 다른 글

학생 신상 정보 입출력프로그램 (2차원 배열)  (0) 2020.09.28
학생 신상 정보 입출력프로그램 (변수, 1차원배열)  (0) 2020.09.27
20200925_7  (0) 2020.09.25
20200924_6_Review(2)  (0) 2020.09.25
20200924_6Review(1)  (0) 2020.09.25

댓글