본문 바로가기

Java

자바 클래스와 배열을 이용한 무지개 연습문제

자바 클래스와 배열을 이용한 무지개 연습문제

 

- 유저는 무지개색을 임의로 입력한다. (ex. 빨주노초파남보 / 보남차포노주빨 / 노초빨주보남파)

- 무지개 값은 임의로 출력된다. (랜덤으로 출력 ex. 빨빨빨주주노초 / 노노초초파파남보)

- 유저가 입력한 무지개색과 정확히 일치할 때까지 무지개 값은 반복문을 계속 돈다.

- 정확히 일치할 때까지 반복문을 몇번 돌았는지 구하시오.

 

package Twentysix;

import java.util.Random;
import java.util.Scanner;

class Color
{
	String color[] = {"빨", "주", "노", "초", "파", "남", "보"};
}

class ColorGroup
{
	Color[] c = new Color[7];
	String palette;
}

class User
{
	String palette;
}

public class Rainbow {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Random r = new Random();
		Scanner sc = new Scanner(System.in);
		
		Color c = new Color();
		ColorGroup[] cg = new ColorGroup[7];
		User[] u = new User[7];
	
		System.out.println("무지개를 한줄씩 입력하세요: ");
		
		for (int i = 0; i < u.length; i++) 
		{
			u[i] = new User();
			u[i].palette = sc.next(); // class User의 palette에 값을 넣어준다.
		}
		
		int count = 0;
		int same = 0;
		
		while(true)
		{
			for (int i = 0; i < cg.length; i++) 
			{
				int randomnumber = r.nextInt(7);
				cg[i] = new ColorGroup();
				cg[i].palette = c.color[randomnumber];
				System.out.print(cg[i].palette); // class ColorGroup의 palette에 값을 임의로 넣어준다.
			}
			
			same = 0; // same 초기화
			
			for (int j = 0; j < u.length; j++) 
			{
				for(int k = 0; k < cg.length; k++)
				{	
					if(u[j].palette.equals(cg[k].palette))
					{
						if(j==k)
						{
							same ++; // 같은 자리에 같은 색이 있다면 same ++
						}
					}
				}
			}
			
			System.out.println(" " + ++count); // 지금까지 몇번 돌았는지 출력
			
			if(same==7) // User가 입력한 무지개의 값과 class ColorGroup의 palette 값이 완벽히 일치한다면 while문을 탈출한다.
			{
				break;
			}
			
		}
		
	}

}

 

콘솔에 나타나는 결과값: