목록전체 글 (135)
100세까지 코딩
문제 설명 풀기 전 생각 연속된 수들 중 상수 합만 따로 구하기 total에서 상수 합을 빼고 num숫자로 나누기 class Solution { public int[] solution(int num, int total) { int[] answer = new int[num]; int sum = 0; // 연속된 수들에서 상수들만의 합 int x; // 변수 x를 저장하기 위한 변수 for(int i = 0; i num * x + sum = total for(int i..
문제 설명 풀기 전 생각 특정 조건 나누지 말고 일반 분수의 합처럼 분모끼리 곱하고 (분모 1 * 분자 2 + 분모 2 * 분자 1) 더하기 1학년때 배운 유클리드 호제법 알고리즘을 써서 최대공약수 구하기 (분자 / 분모)를 기약 분수로 나타내기 위해 최대공약수로 나누기 class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { int[] answer = new int[2]; int answerdenom = denom1 * denom2; // 분모끼리 곱하기 (d1 * d2) int answernumer = denom1 * numer2 + denom2 * numer1; // 분자끼리 더하기 (d1 * n2..
문제 public class Main { public static void main(String[] args) { A test = new B(); System.out.println(test.X); test.func1(); } } class A { public int X = 500; public void func1() { System.out.println("클래스 A입니다."); } } class B extends A { public int X = 1000; public void func1() { System.out.println("클래스 B입니다."); } } 풀기 전 생각 1000, 클래스 B입니다. 가 출력될 것이라고 생각 정보처리기사 공부할 때 동적 바인딩만 나왔고 다 맞았었기 때문 풀이 자바에서 ..
문제 설명 풀기 전 생각 솔직히 너무 막막했다... 수학적으로 풀어야 되는 건지.. 일단 해보자는 생각으로 선분 a-b, a-c, b-c를 비교 두 점 중 start는 더 큰 숫자로, end는 더 작은 숫자로 하면 겹치는 부분 나옴 end - start를 해서 음수면 안 겹쳐지는 것이므로 양수일 때만 더함 class Solution { public int solution(int[][] lines) { int answer = 0; int[][] duplicate = new int[3][2]; // 겹친 선분 [start, end] 저장 int k = 0; // duplicate 차례로 넣기 위한 변수 int sum = 0; //겹친 부분 합하기 위한 변수 for(int i = 0; i < lines.len..
문제 class Parent { int x = 100; Parent() { this(500); // this() : 자기자신 객체 생성자 호출 } Parent(int x) { this.x = x; // this : 객체 자기자신을 의미 } int getX() { return x; } } class Child extends Parent { int x = 4000; Child() { this(5000); } Child(int x) { this.x = x; } } public class Main { public static void main(String[] args) { Child obj = new Child(); System.out.println(obj.getX()); } } 풀기 전 생각 정답은 100이라..