Cute Running Puppy
반응형

R.silver 131

5주차_14.예외처리

예외 예외와 에러의 차이점 예외 에러 상황에 따라 개발자가 해결할 수 있는 오류 개발자가 해결할 수 없는 오류 오류가 발생했을 때 차선책을 선택할 수 있는 것 자바 가상 머신 자체에서 발생하는 오류 0으로 나누는 것은 피할 수 있다 메모리가 꽉 차거나 쓰레드가 죽는 것은 피할 수 없다 예외 클래스의 상속 구조 일반 예외 실행 예외 Exception 클래스에서 직접 상속 RuntimeException 클래스를 상속 컴파일 전에 예외 발생 문법을 검사 실행 할 때 발생하는 예외 예외 처리 안하면 문법 오류 예외처리 안해도 문법 오류 안남 일반 예외 클래스 예외 처리를 하지 않으면 문법 오류 발생 interruptedException Thread.sleep(시간) 일정 시간 동안 해당 쓰래드를 일시 정지 상태..

5주차_13.이너 클래스와 이너 인터페이스

이너 클래스 1. 인스턴스 멤버 이너 클래스 객체 내부에 멤버의 형태로 존재하는 클래스 아우터 클래스의 모든 접근 지정자의 멤버에 접근 가능 이너 클래스는 독집적으로 사용될 수 없고, 반드시 아우터 클래스를 사용해야 사용할 수 있다. 인스턴스 이너 클래스 객체 생성하기 아우터 클래스의 객체 생성 -> 아우터 클래스의 객체 참조 변수를 이용 -> 객체 내부에 있는 이너 클래스의 생성자 호출 cf) 인스턴스 필드, 메서드를 사용하기 위해 클래스의 객체를 먼저 생성하는 것과 같은 원리 인스턴스 멤버 이너 클래스의 객체 생성 방법 아우터_클래스 아우터_클래스_참조_변수 = new 아우터_클래스 (); 아우터_클래스.이너_클래스 이너_클래스_참조_변수 = 아우터_클래스_참조_변수.new 이너_클래스(); clas..

[python] 5622_다이얼

https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net string = list(input()) dial = { 3: ["A", "B", "C"], 4: ["D", "E", "F"], 5: ["G", "H", "I"], 6: ["J", "K", "L"], 7: ["M", "N", "O"], 8: ["P", "Q", "R", "S"], 9: ["T", "U", "V"], 10: ["W", "X", "Y", "Z"] } res = 0 for i in string: for j in range(3, 11): if i in dial[j]: re..

algorithm/Baekjoon 2022.02.17

[python] 2941_크로아티아 알파벳

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net cro = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="] alpha = input() for i in cro: if i in alpha: ''' alpha = alpha.replace(i, '') res += 1 발견한 크로아티아 문자를 없애면 중복된 크로아티아 문자를 셀 수 없다. ''' alpha = alpha.r..

algorithm/Baekjoon 2022.02.17

[python] 1712_손익분기점

https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net a, b, c = map(int, input().split()) if (b >= c): res = -1 else: res = int(a / (c - b)) + 1 print(type(round(a / (c - b)))) print(res) 1. b == c 일 때에도 손익분기점이 계산되지 않는다. 2. 계산 결과를 int 형으로 변환하는 것을 잊지 않아야 한다.

algorithm/Baekjoon 2022.02.17

[python] 2292_벌집

https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net num = int(input()) honeycomb = [1] while(1): if (num == 1): break else: honeycomb.append(honeycomb[-1] + (6 * len(honeycomb))) if(honeycomb[-1] >= num): break print(len(honeycomb)) 계차수열의 값들을 계산해서 리스트에 넣고 리스트의 개수를 세는 방식으로 코드를 작성하..

algorithm/Baekjoon 2022.02.17

4주차_12. 추상 클래스와 인터페이스

추상 클래스 추상 클래스의 정의 메서드 본체가 완성되지 않은 미완성 메서드 - 메서드의 기능을 정의하는 중괄호 부분이 비어있다. - 중괄호가 없기 때문에 세미콜론으로 끝나야 한다. abstract 리턴_타입 메서드명(입력_매개변수); 추상 메서드를 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스로 정의되어야 한다. abstract class 클래스명 { //추상 메서드가 1개 이상 포함되어 있으면 된다. 없어도 된다. } // 미완성 메서드 abstract abc(); // 완성 메서드 void abc () { } 추상 클래스의 특징 추상 클래스는 내부의 미완성 메서드 때문에 객체를 직접 생성할 수 없다. (A a = new A(); 불가) 추상 클래스를 상속한 자식 클래스를 생성하면 그 자식 클래..

4주차_11. 자바 제어자 2

final 제어자 final 변수 final 제어자는 변수를 선언할 때만 지정할 수 있다. 한 번 대입된 값을 수정할 수 없다. // 사용 예시 final int a = 1; // 수정 불가 final 메서드와 final 클래스 final 메서드: 메서드의 기능을 변경할 수 없는 메서드 메서드를 final로 정의하면 자식 클래스에서 해당 메서드를 오버 라이딩할 수 없다. 즉, final 클래스는 상속 받을 수 없다. abstract 제어자 abstract 메서드 == 추상 메서드 abstract 클래스 == 추상 클래스 => 추상 메서드 == 중괄호가 없는 메서드 - 기능 자체가 정의되어 있지 않다 (미완성 메서드) abstract 리턴_타입 메서드명 (); 주의! 추상 메서드를 1개 이상 포함하고 있는..

4주차_10. 클래스의 상속과 다형성

클래스의 상속의 개념과 문법적 특징 상속 다른 클래스의 멤버를 이어받는 기능 상속의 장점 1. 코드의 중복성 제거 2. 클래스의 다형적 표현이 가능 (다형성: 하나의 객체를 여러 가지 모양으로 표현할 수 있는 특성) 상속 문법 class 자식_클래스 extends 부모_클래스 { ... } 자바에서는 다중 상속은 불가능하다 (부모 클래스를 2개 이상 상속받는 것) -> 다중 상속을 허용한다면 모호성이 발생할 수 있기 때문 (상속 받는 클래스 안의 내용이 겹칠 때) 부모 클래스를 상속 받는 자식 클래스는 여러 개가 와도 된다. 생성자의 상속 여부 상속을 수행하면 부모의 모든 멤버를 내려 받는다. 여기서 멤버는 생성자를 제외한 필드, 메서드, 이너 클래스를 말한다. 생성자는 절대로 상속되어서는 안된다. (클..

[python]level1. 키패드 누르기

https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 정답 코드 def solution(numbers, hand): answer = '' key = [[1, 2, 3], [4, 5, 6], [7, 8, 9], ['*', 0, '#']] left = [1, 4, 7, '*'] right = [3, 6, 9,..