내배캠 사전캠프 TIL 15일차

오병택·2025년 2월 6일

내배캠

목록 보기
14/73

학습 요약

자바 강의, 코테 문제

코테 문제

프로그래머스 level1 - 3진법 뒤집기

문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

import java.util.ArrayList;
class Solution {
    public int solution(int n) {
        int answer = 0;
        ArrayList <Integer> arr = new ArrayList<>();
        while (n>0) {
            arr.add(n%3);
            n/=3;
        }
        for (int i=0; i<arr.size(); i++) {
            answer+=arr.get(i)* Math.pow(3,arr.size()-1-i);
        }
        return answer;
    }
}

3진법 : 세 개의 숫자(0,1,2)만 사용하는 수 체계
10진법-> 3진법 :
ex)
너무 형편없지만 위 사진과 같이 나머지를 역순으로 적으면 10진법을 3진법으로 바꿀 수 있음.
3진법-> 10진법
1200에서 앞에서 부터 1,2,0,0을 1X3의 3제곱, 2X3의 2제곱, 3X3의 1제곱, 3X3의 0제곱 이런 식으로 3X3의 자릿수 제곱을 해주면 됨.

프로그래머스 level1 - 삼총사

문제 설명
한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사(3명을 더해서 0이 되는 것)을 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요.

class Solution {
    public int solution(int[] number) {
        int answer = 0;
        for (int i= 0; i<number.length-2; i++) {     
            for (int j=i+1; j<number.length-1; j++) {
                for (int k=j+1; k<number.length; k++) {
                    if (number[i]+number[j]+number[k]==0) {
                        answer++;
                    }
                }
            }
        }
        return answer;
    }
}

이중 for문은 써봤지 삼중은 생각도 못했다. 갈피를 못 잡아서 풀이를 보고 풀었다.
서로 같은 자리를 가리킬 수 있어서 중복이 안되게 시작 값을 준 부분이랑 for문의 중간 연산 부분에서 전체 길이에서 빼줘서 안쪽 for문은 끝났는데 바깥 쪽 for문이 계속 안 돌아가게끔 하는 부분이 인상 깊다.

JAVA 강의

인터페이스를 메서드의 리턴 타입으로 지정 가능

인터페이스의 장점:
1. 개발 시간 단축
2. 변경에 유리한 유연한 설계 가능
3. 표준화 가능
4. 서로 관계없는 클래스들을 관계를 맺어줄 수 있음

default 메서드 추가 설명: 인터페이스에 메서드를 추가 하고 싶은데 추가하게 되면 추상 메서드가 되어서 인터페이스와 관련 있는 클래스들이 영향을 받기 때문에 해결책으로 나온 것

default 메서드가 충돌할 때:
1. 여러 인터페이스의 디폴트 메서드 간의 충돌 : 인터페이스를 구현한 클래스에서 디폴트 메서드를 오버라이딩 해야 함.
2. 디폴트 메서드와 부모 클래스의 메서드 간의 충돌 : 부모 클래스의 메서드가 상속되고, 디폴트 메서드는 무시됨.
헷갈리면 그냥 직접 오버라이딩하면 해결

내부 클래스: 클래스 안의 클래스

내부 클래스의 장점:
1. 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근 할 수 있음.
2. 코드의 복잡성을 줄일 수 있음(캡슐화).

내부 클래스의 종류:
인스턴스이너 클래스, 스태틱이너 클래스, 지역이너 클래스
인스턴스 변수(iv),스태틱 변수(cv),지역변수(lv) // 개념이 위 아래 같음.

느낀 점

자바 강의 객체 지향이 중요하다고 해서 이해 안 가면 최대한 이해할 때까지 보는데 인터페이스 이 부분은 이해하기 어렵다. 보고 또 봐야 이해할 수 있을 것 같다.

profile
걱정하지 말고 일단 해봐!

0개의 댓글