/*문제: 30
1) 0에서 19까지 정수가 저장된 배열의 수를 임의로 섞어라.
int[] numbers = {0, ..., 19}
2) 출력 예:
17 2 1 19 5 ...

3) 숫자를 섞기 위해 임의로 인덱스를 뽑아내기
Math.random() * 20
*/

 

 


class Test{

 public static void main(String[] args) throws Exception {

   int[] numbers = new int[20];
   for (int i = 0; i <= 19; i++) {
     numbers[i] = i;
   }

   int index1, index2, temp;
   for (int i = 0; i < numbers.length; i++) {
     index1 = (int)(Math.random() * 20);
     index2 = (int)(Math.random() * 20);
     temp = numbers[index1];
     numbers[index1] = numbers[index2];
     numbers[index2] = temp;
   }
   for (int i : numbers) {
    System.out.printf("%d \n", i);
  }

  }
}

 

'ALGORITHM > 문제해결' 카테고리의 다른 글

[JAVA] 여러가지 구구단  (0) 2018.08.11
[JAVA] 여러가지 반복문  (0) 2018.08.11
[JAVA] 유니코드 문자  (0) 2018.08.11
[JAVA] 특정 문자를 다른 문자로 교체  (0) 2018.08.11
[JAVA] 분자 분모 계산  (0) 2018.08.11
Posted by 안낭우훗

class Test{

 public static void main(String[] args) throws Exception {

 for (int i = 2; i <= 9; i++) {
   for (int j = 1; j <= 9; j++) {
     System.out.printf("%d * %d = %d    ", i, j, (i * j));
   }
   System.out.println();
 }

 for (int i = 2; i <= 9; i++) {
   for (int j = 1; j <= 9; j++) {
     System.out.printf("%d * %d = %d \n", i, j, (i * j));
   }
   System.out.println();
 }

 for (int i = 9; i >= 2; i--) {
   for (int j = 9; j >= 1; j-- ) {
     System.out.printf("%d * %d = %d \n", i, j, (i * j));
   }
   System.out.println();
 }

 for (int i = 9; i >= 2; i--) {
   for (int j = 1; j <= 9; j++ ) {
     System.out.printf("%d * %d = %d \n", i, j, (i * j));
   }
   System.out.println();
 }

 int i = 2;
 while (i <= 9)  {
   int j = 1;
   while (j <= 9) {
     System.out.printf("%d * %d = %d \n", i, j, (i * j));
     j++;
   }
   System.out.println();
   i++;
 }
 
  }
}

'ALGORITHM > 문제해결' 카테고리의 다른 글

[JAVA] 임의의 섞기 ( Math.random() )  (0) 2018.08.13
[JAVA] 여러가지 반복문  (0) 2018.08.11
[JAVA] 유니코드 문자  (0) 2018.08.11
[JAVA] 특정 문자를 다른 문자로 교체  (0) 2018.08.11
[JAVA] 분자 분모 계산  (0) 2018.08.11
Posted by 안낭우훗

 

 

class Test{

 public static void main(String[] args) throws Exception {
   /*문제: 23
   1) 반복문을 사용하여 5에서 18까지 출력하라!
   2) 출력 예:
   5 6 7 8 ... 18
   */
   for (int i = 5 ; i <= 18; i++) {
     System.out.printf("%d ", i);
   }
   System.out.println();

   /*문제: 24
   1) 반복문을 사용하여 20에서 5까지 출력하라!
   2) 출력 예:
   20 19 18 ... 5
   */
   for (int i = 20; i >= 5; i--) {
     System.out.printf("%d ", i);
   }
   System.out.println();

   /*문제: 25
   1) 반복문을 사용하여 2에서 30까지 3씩 증가한 값을 출력한다.
   2) 출력 예:
   2 5 8 11 ...
   */
   for (int i = 2; i <= 30; i+=3) {
     System.out.printf("%d ", i);
   }
   System.out.println();

   /*문제: 26
   1) 반복문을 사용하여 4에서 30까지 1씩 증가한 값을 출력한다.
      단 10 이상 20 미만인 경우는 출력하지 말아라.
   2) 출력 예:
   2 5 8 11 ...
   */
   for (int i = 4; i <= 30; i++) {
      if (i >= 10 && i < 20) {
        continue;
      }
      System.out.printf("%d ", i);
   }
   System.out.println();

   /*문제: 27
   1) 반복문을 사용하여 0에서 10까지 1씩 증가한 값을 출력한다.
      동시에 0부터 3씩 증가한 값을 출력한다.
   2) 출력 예:
   0 - 0
   1 - 3
   2 - 6
   3 - 9
   */
   for (int i = 0, j = 0; i <= 10; i++, j += 3) {
     System.out.printf("%d - %d\n", i, j);
   }
   System.out.println();

  }
}

'ALGORITHM > 문제해결' 카테고리의 다른 글

[JAVA] 임의의 섞기 ( Math.random() )  (0) 2018.08.13
[JAVA] 여러가지 구구단  (0) 2018.08.11
[JAVA] 유니코드 문자  (0) 2018.08.11
[JAVA] 특정 문자를 다른 문자로 교체  (0) 2018.08.11
[JAVA] 분자 분모 계산  (0) 2018.08.11
Posted by 안낭우훗

  /*문제: 22
 1) 주어진 문자열의 대문자 알파벳의 개수를 센다.
 2) 실행 및 출력 예:
 >java Test circleofnumbers
 b:1
 c:2
 e:2
 f:1
 i:1

 

  int no = Integer.parseInt(args[0]);

    char ch = 'A'; // A 문자의 유니코드 값이 저장. 0x0041 = 65 = A
    System.out.println((char)(ch + no));
    System.out.println(44032); 
    System.out.println((char)44032); // 가

 

 class Test {

 public static void main(String[] args) throws Exception {
   char[] chars = args[0].toUpperCase().toCharArray();
   int[] counts = new int[26];

   for (int i = 0; i < counts.length; i++) {
       counts[i] = 0;
   }

   for(int i = 0; i < chars.length; i++) {
      counts[chars[i] - 'A']++;
   }
   for (int i = 0; i < counts.length; i++) {
     if (chars[i] <= 0) {
       continue;
     }
     System.out.printf("%c: %d \n", (char) (i + 'A'), counts[i]);
   }

  }
}

'ALGORITHM > 문제해결' 카테고리의 다른 글

[JAVA] 여러가지 구구단  (0) 2018.08.11
[JAVA] 여러가지 반복문  (0) 2018.08.11
[JAVA] 특정 문자를 다른 문자로 교체  (0) 2018.08.11
[JAVA] 분자 분모 계산  (0) 2018.08.11
[JAVA] 등비수열인지 판단  (0) 2018.08.11
Posted by 안낭우훗

/*문제
1) 문자 배열이 있다. 특정 문자를 다른 문자로 교체
2) 배열 데이터 예:
char[] chars = {'i', 'n', 't', 'e', 'g', 'e', 'r'};
char ch1 = 't';
char ch2 = 'x';
3) 실행 및 출력 예:
>java Test
결과: inxeger

 

 

 

class Test{

 public static void main(String[] args) throws Exception {

   char[] chars = {'i', 'n', 't', 'e', 'g', 'e', 'r'};
   char ch1 = 't';
   char ch2 = 'x';

   for (int i = 0; i < chars.length; i++) {
     if (chars[i] == ch1) {
       chars[i] = ch2;
     }
   }

   for (char i : chars) {
     System.out.printf("%c \n",  i);
   }
  }
}

Posted by 안낭우훗

/*문제: 19
  1) 분모, 분자 두 개의 배열이 있다. 나눈 계산 결과 중에서 가장 큰 수를 출력하라!
  2) 배열 데이터 예:
  int[] numerator = {5, 2, 5};
  int[] denominator = {6, 3, 4};
  3) 출력 예:
  결과: 5/4

 

 

 

public class Test {
  public static void main(String[] args) {
    int[] numerator = {5, 2, 5, 2};
    int[] denominator = {6, 3, 4, 7};

 

    int maxIndex = 0;
    for (int i = 1; i < numerator.length; i++) {
      if (numerator[maxIndex] * denominator[i] <
          numerator[i] * denominator[maxIndex] ) {
        maxIndex = i;
      }
    }
    System.out.printf("결과: %d/%d\n", numerator[maxIndex], denominator[maxIndex]);

  }

}

Posted by 안낭우훗

 

/*문제: 18
  1) 배열이 등비수열인지 여부를 확인한다.
  2) 배열 데이터 예:
  int[] list = {1, 4, 16, 64, 256};
  3) 출력 예:
  {1, 4, 16, 64, 254} : 등비수열이다.
  {1, 4, 16, 32, 128} : 등비수열이 아니다.
  4) 등비수열 이란.
  제 n항과 제 n+1항의 비가 일정한 수열.

 

 

class Test{

 public static void main(String[] args) throws Exception {

 int[] list = {1, 4, 16, 64, 256};

 boolean result = true;

 for (int i = 2; i < list.length; i++) {
   if ( list[0] * list[i] != list[i-1] * list[1]) {
     result = false;
     break;
   }
 }
 System.out.print("{");
 for (int i = 0; i < list.length; i++) {
   if (i > 0)
     System.out.print(", ");
   System.out.print(list[i]);
 }
 System.out.printf("} : %s\n",
   (result ? "등비수열입니다." : "등비수열이 아닙니다."));

  }
}

Posted by 안낭우훗

 

/*문제: 17
1) 배열을 반으로 나눠서 서로 값을 바꾼다.
   단 배열의 항목은 항상 짝수여야 한다.
2) 배열 데이터 예:
int[] list1 = {1, 2, 3, 4, 5, 6, 7, 8};
3) 출력 예:
list1 :5, 6, 7, 8, 1, 2, 3, 4

 


class Test{

 public static void main(String[] args) throws Exception {

 int[] lists = {1, 2, 4, 7, 11, 9, 30, 3};
 int temp;
 int length = lists.length / 2;
 for (int i = 0; i < length; i++) {
   temp = lists[length + i];
   lists[length  + i] = lists[i];
   lists[i] =  temp;
 }

 System.out.print("list1: ");
 for (int i = 0; i < lists.length; i++) {
   if (i > 0) {
     System.out.print(", ");
   }
   System.out.print(lists[i]);
 }
 System.out.println();

  }
}

Posted by 안낭우훗

/*문제: 16 [swap]
  1) 두 수의 값을 서로 바꿔라.
  2) 데이터 예:
  int leftValue = 10, rightValue = 5;
  3) 출력 예:
  leftValue: 5, rightValue: 10
  list[0]: 5, list[1]: 10
  */

 

 

 

class Test{

 public static void main(String[] args) throws Exception {

   int leftValue = 10;
   int rightValue = 5;
   int temp;

   temp = leftValue;
   leftValue = rightValue;
   rightValue = temp;

   System.out.printf("leftValue: %d, rightValue: %d\n", leftValue, rightValue);

   int[] lists = {10, 5, 0};
   lists[2] = lists[0];
   lists[0] = lists[1];
   lists[1] = lists[2];
   System.out.printf("list[0]: %d, list[1]: %d", lists[0], lists[1]);
  }
}

Posted by 안낭우훗

/*문제: 15 [배열값 역순으로 복사]
  1) 두 개의 배열이 있다. 한 배열의 값을 다른 배열로 복사하라!
     단 역순으로 복사한다.
  2) 배열 데이터 예:
  int[] list1 = {1, 2, 3, 4, 5, 6};
  int[] list2 = new int[list1.length];
  3) 출력 예:
  list1: 1, 2, 3, 4, 5, 6
  list2: 6, 5, 4, 3, 2, 1

 

class Test{

 public static void main(String[] args) throws Exception {

   int[] list1 = {1, 2, 3, 4, 5, 6};
   int[] list2 = new int[list1.length];

   // case1
   for (int i = 0, j = list1.length - 1; i < list1.length; i++, j--) {
   // list2[i] = list1[j];
   }
   // case2
   for (int i = 0, j = 5; i < list1.length; i++) {
   // list2[i] = list1[j--];
   }
   // case3
   int j = list1.length - 1;
   for (int i = 0; i <  list1.length; i++) {
   // list2[j--] = list1[i];
   }
   // case4
   for (int i = 0; i <  list1.length; i++) {
     list2[(list1.length - 1) - i] = list1[i];
   }

   System.out.print("list1 : ");
   for (int i = 0; i < list1.length; i++) {
     System.out.printf("%s%d", (i == 0) ? "" : ", ", list1[i]);
   }
   System.out.println();

   System.out.print("list2 : ");
   for (int i = 0; i < list1.length; i++) {
     System.out.printf("%s%d", (i == 0) ? "" : ", ", list2[i]);
   }
   System.out.println();
  }
}

 

Posted by 안낭우훗
이전버튼 1 2 3 이전버튼

블로그 이미지
좋은싸이트 공유, 재해석 , 공부 정리, 틀린거 알려 주세요~
안낭우훗

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.5
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함