배열(Array) 연습문제
::::특별한 Java Story 2013. 6. 24. 02:57 |package Exercise5;
public class Exercise5_3 {
public static void main(String[] args) {
int[] arr = {10,20,30,40,50};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum = sum+arr[i];
}
System.out.println("sum : "+sum);
}
}
-----------------------------------------------------------------------------------
package Exercise5;
public class Exercise5_4 {
public static void main(String[] args) {
int[][] arr = {{5,5,5,5,5},{10,10,10,10,10},{20,20,20,20,20},{30,30,30,30,30}};
int total = 0;
float average = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
total += arr[i][j];
}
}
average =(float) total/(arr.length*5);
System.out.println("total="+total);
System.out.println("average="+average);
}
}
---------------------------------------------------------------------------------
package Exercise5;
public class Exercise5_5 {
public static void main(String[] args) {
int[] ballArr = {1,2,3,4,5,6,7,8,9};
int[] ball3 = new int[3];
for (int x = 0; x < 20; x++) { //20번 돌려준다.
int i = (int)(Math.random() * ballArr.length); //9개중에서 한개를 뽑는다.
int j = (int)(Math.random() * ballArr.length); //9개중에서 한개를 뽑는다.
int temp = 0; // 임시저장공간을 하나 만든다.
temp = ballArr[i];
ballArr[i] = ballArr[j];
ballArr[j] = temp; //치환한다.
}
System.arraycopy(ballArr, 0, ball3, 0, 3); //치환된 값을 ball3 에 복사한다.
for (int i = 0; i < ball3.length; i++) {
System.out.print(ball3[i]); //값을 출력한다.
}
}
}
--------------------------------------------------------------------------------------
package Exercise5;
public class Exercise5_6 {
public static void main(String[] args) {
//큰 금액의 동전을 우선적으로 거슬러 줘야한데..
int[] coinUnit = {500,100,50,10};
int money = 2680;
System.out.println("money="+money);
/*for (int i = 0; i < coinUnit.length; i++) {
int n = money/coinUnit[i];
}*/ //의미 없는 구문이었음.ㅋ;;
for (int i = 0; i < coinUnit.length; i++) {
System.out.println(coinUnit[i]+"원 : "+money/coinUnit[i]);
money = money%coinUnit[i]; //money 값은 위에 계산된 값은 coinUnit[i] 값으로
} //계속 나눈 나머지 값이 된다. 이 구문은 두루두루 사용될것이다.!
}
}
------------------------------------------------------------------------------------------------
package Exercise5;
public class Exercise5_8 {
public static void main(String[] args) {
int[] answer = {1,4,4,3,1,4,4,2,1,3,2}; //0~11 (크기가 12인 배열)
int[] counter = new int[4]; //0,1,2,3 (크기가 4인 배열)
for (int i = 0; i < answer.length; i++) {
counter[answer[i]-1]++; //안타깝게도 answer 배열은 0이 없다..그래서 counter 배열 0과 맞추어
} //줘야 하기때문에 answer 배열에서 1을 뺀그다~~ 방이 0,1,2,3 이렇게 있으니
for (int i = 0; i < counter.length; i++) {
System.out.print(counter[i]);
for (int j = 0; j < counter[i]; j++) {
System.out.print("*"); //바로 위에 연결하여 counter[i] 값을 구한만큼 별을 찍어라!
}
System.out.println(); //썅~! 줄바꿈도 중요하군..ㅋㅋ
}
}
}
---------------------------------------------------------------------------------------------------
package Exercise5;
public class Exercise5_9 {
public static void main(String[] args)
{
char[][] star = {{'*','*',' ',' ',' '},{'*','*',' ',' ',' '},{'*','*','*','*','*'},{'*','*','*','*','*'}};
char[][] result = new char[star[0].length][star.length];
// 5? //4?
for (int i = 0; i < star.length; i++) //4행
{
for (int j = 0; j < star[i].length; j++) //5열
{
System.out.print(star[i][j]);
}
System.out.println();
}
System.out.println();
for (int i = 0; i < star.length; i++) //4행
{
for (int j = 0; j < star[i].length; j++) //5열
{
int a = j; // a 는 5열
int b = star.length-1-i; // b 는 4행 4-1-0=3 / 4-1-1=2 / 4-1-2=1 / 4-1-3=0 /
result[a][b] = star[i][j]; //result[5][4] = star[4][5]
}
}
for (int i = 0; i< result.length; i++) {
for (int j = 0; j < result[i].length; j++) {
System.out.print(result[i][j]);
}
System.out.println();
}
}
}
//책의 답안대로 하면...숫자를 쓰면서....음.. 책의 원리도 나쁜건 아니얌~! 이문제는 생각하기 나름이다.ㅋ
----------------------------------------------------------------------------------------------------
package Exercise5;
public class Exercise5_10 {
public static void main(String[] args)
{
char[] abcCode = {'`','~','!','@','#','$','%','^','&','*','(',')','-','_','+','=','|','[',']','{','}',';',':',',','.','/'};
char[] numCode = {'q','w','e','r','t','y','u','i','o','p'};
String src = "abc123";
String result = "";
for (int i = 0; i < src.length(); i++) {
char ch = src.charAt(i);
}
System.out.println("src : "+src);
char[] abc = new char[3];
System.arraycopy(abcCode, 0, abc, 0, 3);
//System.out.print(new String(abc));
char[] num = new char[3];
System.arraycopy(numCode, 1, num, 0, 3);
//System.out.print(new String(num));
result = new String(abc) + new String(num);
System.out.println("result : "+result);
}
}
// 책이랑 쫌 다르게 풀어봤엉~~ 답만 나오면 된다고 했으니깐..배운대로 복사를 이용해서 풀었습니다.
------------------------------------------------------------------------------------------------
package Exercise5;
public class Exercise5_11 {
public static void main(String[] args) {
int[][] score = {{100,100,100},{20,20,20},{30,30,30},{40,40,40},{50,50,50}}; //5행 3열
int[][] result = new int[score.length+1][score[0].length+1];
//6행 //4열
for (int i = 0; i < score.length; i++) { //0 ~ 4 까지
for (int j = 0; j < score[i].length; j++) // 0 ~ 2 까지
{
//System.out.print(score[i][j]);
result[i][j] = score[i][j]; //복사~
//문제는 지금부터얌..
result[i][score[j].length] = result[i][score[j].length] + result[i][j]; //가로 세로 합
//여기서 i 값은 괄호를 나가면 계속 '0' score[j].length 는 0 ~ 2까지 네용!
result[score[i].length+2][j] = result[score[i].length+2][j] + result[i][j];
//이번에는 행 값이 증가하고 열값은 계속 고정이어야 하는건데...나..원참..
result[score[i].length+2][score[j].length] = result[score[i].length+2][score[j].length] + result[i][j];
//얼떨결에 풀었는데..이해가 잘 안간다..ㅋㅋ 내일도 다시 봐야겠어~ㅠ_ㅠ
}
}
for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result[i].length; j++) {
System.out.printf("%4d",result[i][j]);
}
System.out.println();
}
}
}
~~아오 드럽게 빡세네..그래도 문제푸는게 재미는 있네..드럽게 안풀려서 그러지..ㅠ_ㅠ
'::::특별한 Java Story' 카테고리의 다른 글
Stack 과 Queue (0) | 2013.06.27 |
---|---|
ArrayList / Vector / LinkedList (0) | 2013.06.26 |
JSP_세팅 (0) | 2013.06.20 |
배열(Array) (0) | 2013.06.20 |
DBConn.java 데이터베이스 연결 및 오류 잡기 (The Network Adapter could not establish the connection) (0) | 2013.06.12 |