목록분류 전체보기 (135)
100세까지 코딩
문제 설명 풀기 전 생각 특정 조건 나누지 말고 일반 분수의 합처럼 분모끼리 곱하고 (분모 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이라..
문제 설명 풀기 전 생각 4개의 점이 주어졌으니 기울기로 평행을 찾아낸다 중복을 제외하면 총 6개의 선분이 만들어지고, 기울기만 배열에 따로 저장한다 a-b, a-c, a-d, b-c, b-d, c-d 선분의 기울기 class Solution { public int solution(int[][] dots) { int answer = 0; double[] inclination = new double[6]; // 기울기를 저장할 배열 int k = 0; // 기울기 배열에 증가값을 위한 변수 for(int i=0;i
문제 public class Main { public static void main(String[] args){ String a = "hello world"; String b = "hello world"; String c = a; String d = new String("hello world"); System.out.println(a==b); System.out.println(a==c); System.out.println(a==d); System.out.println(a.equals(b)); System.out.println(b.equals(d)); } } 풀기 전 생각 false // 다른 주소를 만드니깐? true // c = a라고 했으니깐 false // new String으로 새로운 주소를 만들..