본문 바로가기

분류 전체보기37

형변환 ep. 1 코딩테스트 문제 풀다가 입력값의 제한 조건으로 "n은 10,000,000,000이하인 자연수"를 만남 - 음.. int로 풀다가는 혼꾸녕이 나겠구나 싶었음... 테스트 몇 개 돌렸더니 잘 돌아가서 사이트에 제출했더니 60점 나옴... // 문제의 코드, 12345를 받아서 [5, 4, 3, 2, 1]을 반환해야 함 public int[] solution(long n) { int[] result = new int[Long.toString(n).length()]; for (int i = 0; i < result.length; i++) { result[i] = (int) n % 10; // 문제의 형변환 n /= 10; } return result; } n % 10을 먼저 연산하고 int로 형변환하라고 시킨 .. 2023. 10. 21.
super this 예외 처리 공부하던 중 Exception을 상속한 클래스의 생성자에 super("어쩌고 저쩌고")를 만남... super는 부모 클래스에 접근하는 거 아닌가? super()는 또 무엇일까? - 자식 클래스의 객체가 만들어질 때 부모 클래스의 객체도 같이 포함하여 만들어짐 - super()는 부모 클래스의 생성자 호출임 - 고로 super("어쩌고 저쩌고")는 Exception 클래스의 public Exception (String message) {}를 호출한 것. 그런데... // 문제의 발단 public class BadInputException extends Exception { public BadInputException(String type) { super("잘못된 입력입니다! " + type +.. 2023. 10. 19.
다형성(Polymorphism) 추상 클래스를 이용하여 사칙연산을 수행하는 계산기 만들기 - 추상화, 오버라이딩의 개념은 이해함 but... 클래스 안에서 다른 클래스를 필드로 받고 메서드에서 그걸 매개변수로 사용하고... 복잡해지기 시작함 - 최종적으로는 Parser 인스턴스만 만들어서 parser.executeCalculator()를 실행하면 됨 - 어떤 클래스를 만들고 거기에 어떤 필드와 메서드를 넣을지 구상하는 과정이 매우 중요할 것으로 생각됨 // 사칙연산 각각의 클래스를 추상화한 추상 클래스 생성 public abstract class AbstractOperation { public abstract double operate(int firstNumber, int secondNumber); } // 추상 클래스를 인스턴스 필드.. 2023. 10. 19.
야구게임 by Java 십대 이후로 안 해본 숫자 야구게임을 Java로 만들어 봄 랜덤 넘버 3개를 만드는 방법이야 쉽겠지 했는데 중복을 허용하지 않아야 하는군... - int[]로 만들면 되나? - 아니면 Set.add로 length가 3이 될때까지? - Strike/Ball 판정하려면 index가 필요하니까 LinkedHashSet인가? - 그냥 ArrayList는? - HashSet으로 만들어서 List로 형변환? (상속관계가 아닌듯..) Random random = new Random(); int num1 = random.nextInt(10); int num2, num3; while (true) { num2 = random.nextInt(10); num3 = random.nextInt(10); if (num1 == nu.. 2023. 10. 19.