[Java] 자료형 연습문제

이용준·2022년 10월 25일
0

Java

목록 보기
9/29
  1. 홍길동씨의 과목별 점수를 보고 평균 점수를 구해보자
과목점수
국어80
영어75
수학55
1. 변수 할당방법
public class test {
    public static void main(String[] args){
        int lang= 80;
        int eng=75;
        int math=55;
        int result= (lang+eng+math) / 3;

        System.out.println(result);
    }
}

2. 리스트 생성해 나누는 방법
import java.util.ArrayList;
import java.util.Arrays;

public class test {
    public static void main(String[] args){
        ArrayList<Integer> score = new ArrayList<>(Arrays.asList(80,75,55));
        int sum = score.stream().mapToInt(Integer::intValue).sum() / 3;
        System.out.println(sum);
    }
}
// stream 방식은 loop 방식에 비해 속도 측면에서 부정적이다.
  1. 자연수 13이 홀수인지 짝수인지 판별할 수 있는 방법에 대해 말해보자
public class test {
    public static void main(String[] args) {
        for (int i = 0; i < 14; i++) {
            if (i % 2 != 0) {
                System.out.println(String.format("%s는 홀수", i));
            }
        }
    }
}
  1. 임의의 주민번호에서 연월일(YYMMDD)와 그 뒤 숫자 부분을 나누어 출력해보자.
    • 임의 주민번호 : 881120-1068234
public class test {
    public static void main(String[] args) {
        String jumin = "881120-1068234";
        String birth = jumin.substring(0,6);  
        String[] sep = jumin.split("-");

        System.out.println(birth);
        System.out.println(sep[0]);
    }
}
  1. 주민번호 뒷자리에서 성별을 나타내는 숫자 출력
방법1. split, substring 사용하기
방법2. charAt사용하기
public class test {
    public static void main(String[] args) {
        String jumin = "881120-1068234";
        String[] sep = jumin.split("-");
           
        System.out.println(sep[1].substring(0,1));
        System.out.println(sep.charAt(7));
    }
}
  1. 다음 문자열을 replace 함수를 사용해 a#b#c#d로 바꿔서 출력해보자.
    a = "a:b:c:d"
방법1) String.join 사용하기
import java.util.ArrayList;
import java.util.Arrays;

public class test {
    public static void main(String[] args) {
        ArrayList<String> sep = new ArrayList<>(Arrays.asList("a","b","c","d"));
        String result = String.join("#",sep);
        System.out.println(result);  //a#b#c#d
    }
}

방법2) replaceAll 사용하기
public class test{
  public static void main(String[] args){
    String a = "a:b:c:d";
    String b - a.replaceAll(":","#");
    System.out.println(b);
    }
  }  
  1. [1,3,5,4,2] 리스트를 내림차순으로 정렬해보자.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;

public class test{
  public static void main(String[] args){
    ArryaList<Integer> li = new ArrayList<>(Arrays.asList(1,3,5,4,2));
    li.sort(Comparator.reverseOrder());;
    System.out.println(li);;
    }
  }  
  1. ["Life", "is", "too", "short"] 리스트를 "Life is too short" 문자열로 만들어 출력해보자.
import java.util.ArrayList;
import java.util.Arrays;

public class test {
    public static void main(String[] args) {
        ArrayList<String> corpus = new ArrayList<>(Arrays.asList("Life","is","too","short"));
        System.out.println(String.join(" ",corpus));
    }
}
  1. 맵 grade에서 "B"에 해당되는 값 추출해보자.
    (추출후 grade에는 "B"에 해당하는 아이템이 사라져야 한다.)
import java.util.HashMap;

public class test {
    public static void main(String[] args) {
       HashMap<String, Integer> grade = new HashMap<>();
       grade.put("A",90);
       grade.put("B",80);
       grade.put("C",70);
       int result = grade.remove("B");

       System.out.println(result);  // 값 추출
       System.out.println(grade);   // "B" 사라진 grade 출력
       
    }
}
  1. 다음의 numbers 리스트에서 중복 숫자를 제거해보자.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;

public class test {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5));
        HashSet<Integer> nums = new HashSet<>(numbers);
        System.out.println(nums);
    }
}

(해설)Set에서 다시 List로 변경
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;

public class test {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5));
        HashSet<Integer> nums = new HashSet<>(numbers);   // 리스트를 Set으로 변경
        ArrayList<Integer> result = new ArrayList<>(nums); // Set을 다시 list로 변경
        System.out.println(result);
    }
}
  1. 다음 커피 종류(1:아메리카노, 2:아/아, 3:라떼)를 입력하면 커피 가격 알려주는 프로그램 개선.
    (매직넘버 제거)
import java.util.HashMap;


public class test {
    static void PrintCoffeePrice(int type){
        HashMap<Integer, Integer> priceMap = new HashMap<>();
        priceMap.put(1,3000); //1. 아메리카노
        priceMap.put(2,4000); //2. 아이스 아메리카노
        priceMap.put(3,5000); //3. 라떼
        int price=priceMap.get(type);
        System.out.println(String.format("가격은 %d이다.", price));
    }

    public static void main(String[] args) {
        PrintCoffeePrice(1);
        PrintCoffeePrice(99);

    }
}
-------------------------------------------------------------------
import java.util.HashMap;


public class test {
    enum CoffeType{
        Americano,
        IceAmericano,
        CaffeLatte
    }
    static void PrintCoffeePrice(CoffeType type){
        HashMap<CoffeType, Integer> priceMap = new HashMap<>();
        priceMap.put(CoffeType.Americano,3000); //1. 아메리카노
        priceMap.put(CoffeType.IceAmericano,4000); //2. 아이스 아메리카노
        priceMap.put(CoffeType.CaffeLatte,5000); //3. 라떼
        int price=priceMap.get(type);
        System.out.println(String.format("가격은 %d이다.", price));
    }

    public static void main(String[] args) {
        PrintCoffeePrice(CoffeType.Americano);
//        PrintCoffeePrice(99);

    }
}

enum을 사용해 매직 넘버를 제거했으며, 99와 같은 엉뚱한 값에 오두 발생하지 않는 프로그램으로 개선

profile
뚝딱뚝딱

0개의 댓글