javaboiii의 JAVA/JAVA 예제

JAVA - ArrayList, Map 예제

javaboiii 2024. 7. 15. 17:33

JAVA

문제 1

 

1~100 사이의 정수를 사용자가 입력합니다.

짝수라면 배열리스트에 추가해주시고,

짝수가 아니라면 x2 하여 배열리스트에 추가해주세요.

배열리스트의 요소개수가 3개가 되면 더이상 입력받지않고,

그동안 저장했던 요소들을 출력해주시고

총합을 출력해주세요!

public static void main(String[] args) {
    // 1~100 사이의 정수를 사용자가 입력합니다.
    Scanner sc = new Scanner(System.in);
    System.out.println("1~100 사이의 정수를 입력받고 배열리스트에 추가는 프로그램입니다");

    ArrayList<Integer> arr = new ArrayList<Integer>();

    int num;
    int sum = 0;
    while(true) {
        if(arr.size() >= 3) { // 배열리스트의 요소개수가 3개가 되면 더이상 입력받지않고,
            break;
        }
        System.out.println("정수 입력 >>");
        num = sc.nextInt();
        if(0 < num && num <= 100) {
            if(num%2 == 0) { // 짝수라면 배열리스트에 추가해주시고,
                arr.add(num);
                sum += num;
            }
            else{ // 짝수가 아니라면 x2 하여 배열리스트에 추가해주세요.
                arr.add(num*2);
                sum += num*2;
            }
        }
        else {
            System.out.println("1~100사이의 정수만 입력");
        }
    }
    System.out.println("저장한 값"+arr+"의 총합 : "+sum); // 그동안 저장했던 요소들을 출력해주시고 총합을 출력해주세요!
}

 

정답

public static void main(String[] args) {

  Scanner sc=new Scanner(System.in);
  ArrayList<Integer> al=new ArrayList<Integer>();
  while(true) {
     System.out.print("정수 입력 >> ");
     int num=sc.nextInt();

     if(num<1 || 100<num) {
        System.out.println("1~100 사이의 정수를 입력해주세요!");
        continue;
     }

     al.add(num%2 == 0 ? num : num*2);

     if(al.size() >= 3) {
        break;
     }
  }

  System.out.println(al);

  int sum=0;
  for(int v:al) {
     sum+=v;
  }
  System.out.println("총합 : "+sum);
}

 

문제 2

 

Point 클래스가 있습니다.

점은 x,y좌표를 속성으로 갖습니다.

x,y 좌표 위치를 반드시 정하여 point 객체를 생성합니다.

101번 점 p1, 102번 점 p2 를 생성하여

map 컬렉션으로 관리해주세요

class Point{
	private int x;
	private int y;
	Point(int x, int y){
		this.x = x;
		this.y = y;
	}
	
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	public void setY(int y) {
		this.y = y;
	}

	@Override
	public String toString() {
		return "Point [x=" + x + ", y=" + y + "]";
	}
	
	
	
}
public class Task02 {
	public static void main(String[] args) {
		
		Point p1 = new Point(0,0); // 101번 점 p1, 102번 점 p2 를 생성하여
		Point p2 = new Point(1,1); // 101번 점 p1, 102번 점 p2 를 생성하여
		
		Map<Integer,Point> xy = new HashMap<Integer, Point>();
		
		xy.put(101, p1); 
		xy.put(102, p2); 
		
		System.out.println(xy);
	}
}

 

정답

class Point {
   private int x;
   private int y;

   Point(int x,int y){
      this.x=x;
      this.y=y;
   }

   public int getX() {
      return x;
   }
   public void setX(int x) {
      this.x = x;
   }
   public int getY() {
      return y;
   }
   public void setY(int y) {
      this.y = y;
   }

   @Override
   public String toString() {
      return "Point [x=" + x + ", y=" + y + "]";
   }
}
public class Test02 {
   public static void main(String[] args) {

      Map<Integer, Point> map=new HashMap<Integer, Point>();
      
      int PK=101;
      
      map.put(PK++, new Point(10,11));
      map.put(PK++, new Point(12,22));
      map.put(PK++, new Point(100,200));
      
      System.out.println(map); 
   }
}

 

유효성 검사나 조건, 객체생성 같은부분에서

좀 더 효율적이고 실용적인 코드가 많지만

 

막상 문제를 보면 생각이 안남, 잘안됨

 

안되면

 

'javaboiii의 JAVA > JAVA 예제' 카테고리의 다른 글

JAVA - 파일 입출력 예제  (0) 2024.07.25
JAVA - MVC패턴 예제  (0) 2024.07.18
JAVA - 인터페이스 예제  (0) 2024.07.12
JAVA - [함수] 학생부 프로그램 함수화  (0) 2024.07.01
JAVA - 함수 예제  (0) 2024.07.01