본문 바로가기

분류 전체보기

(172)
[JAVA] 상속 상속의 개요 상속은 객체지향 언어의 장점인 모듈의 재사용과 코드의 간결성을 제공하는 중요한 특성이다. 자바에서는 클래스 선언 시 상위 클래스(super class)를 지정하기 위해 확장을 의미하는 extends라는 예약어를 사용한다. 자바 프로그램에서 클래스의 상속은 상위 클래스의 모든 요소를 상속받고 추가 요소를 더 가지는 확장의 개념이다. 멤버 변수의 상속 클래스가 상속되면 상위 클래스의 멤버 변수들은 접근 한정자에 따라 상속 여부가 결정된다. protected 접근 한정자는 같은 패키지 내의 클래스와 같은 패키지는 아니지만 상속된 클래스에서 사용 가능한 접근 한정자이다. 결론적으로 멤버 변수의 접근 한정자는 다음과 같이 설명될 수 있다. ✔ public : 동일한 패키지인지, 상속관계인지에 상관없이..
[알고리즘] 백준 14889 스타트와 링크 / python https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net def next_permutation(a): n = len(a) - 1 i = n while i > 0 and a[i-1] >= a[i]: i -= 1 if i == 0: return False j = n while a[i-1] >= a[j]: j -= 1 a[i-1], a[j] = a[j], a[i-1] j = n while i < j: a[i], a[j] = a[j], a[i] i += 1 j -= 1 return..
[알고리즘] 백준 10974 모든 순열 / python, 순열 https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net def next_permutation(a): n = len(a) - 1 i = n while i > 0 and a[i-1] >= a[i]: i -= 1 if i == 0: return False j = n while a[i-1] >= a[j]: j -= 1 a[i-1], a[j] = a[j], a[i-1] j = n while i < j: a[i], a[j] = a[j], a[i] i += 1 j -= 1 return True a = [i+1 for i in range(int(input..
[알고리즘] 백준 1748 수 이어 쓰기 / python https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1≤N≤100,000,000)이 주어진다. www.acmicpc.net N = input() result = 0 for i in range(len(N)-1): result += 9 * (10**i) * (i+1) else: result += (int(N) - 10**(len(N)-1) + 1) * len(N) print(result)
[JAVA] 클래스의 기능 생성자 (Constructor) 생성자는 클래스로부터 객체가 생성될 때 객체의 초기화 과정을 기술하는 특수한 메소드이다. 객체가 생성될 때 무조건 수행되며, 한번만 수행된다. 생성자는 객체를 생성하는 new 명령어에 의해 자동으로 실행된다. 생성자는 주로 객체 변수를 초기화할 필요가 있을 때 사용하며, 이름은 반드시 클래스의 이름과 동일해야한다. class Box5 { int width; int height; int depth; //생성자로서 초기화 수행 public Box5(int w, int h, int d) { width = w; height = h; depth = d; } } public class BoxTest { public static void main(String[] args) { Box5..
[JAVA] 객체지향 개념 객체지향의 개요 객체지향 이론 객체지향 이론은 컴퓨터를 통하여 실세계와 같은 환경을 흉내내기 위해 발전한 이론이다. 실세계는 사물(객체)로 구성되어 있으며, 이러한 사물들의 상호작용에 의해 실세계는 작동한다. 실세계의 객체는 속성 + 기능 으로 구성되어 있다. 객체지향 이론은 실세계의 모든 사물들을 속성과 기능으로 정의하고, 사물들간의 상호작용을 정의해서 실제 세계를 흉내낸다는 이론이다. 객체지향 이론은 클래스, 상속, 캡슐화, 다형성의 개념을 중심으로 발전하였다. 객체지향 장점 ✔ 문제를 쉽게 프로그램화 할 수 있다. ✔ 객체들의 독립성으로 데이터에 의존하지 않고 생산성을 향상시킬 수 있다. ✔ 객체라는 모듈을 부품처럼 재사용 할 수 있다. 클래스와 객체 객체지향 프로그램을 작성하다보면 같은 기능을 하..
[알고리즘] 백준 1107 리모컨 / python, 브루트포스 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼�� www.acmicpc.net N = int(input()) M = int(input()) if M != 0: B = list(input().split()) else: B = [] R = [str(i) for i in range(10) if str(i) not in B] result = abs(N - 100) for i in range(1000000): tf = True for s in str(i): if ..
[알고리즘] 백준 1439 뒤집기 / python, greedy https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net ✔ 풀이과정 예시의 0001100은 010으로 봐도 무방하다. 길이에 관계없이 문자가 바뀌는지만 보기 때문이다. 다음은 길이에 따라 최소 몇번 바꿔야하는지를 적은것이다. 0 과 1 👉 0번, 길이 1 01 👉 1번, 길이 2 010 👉 1번, 길이 3 0101 👉 2번, 길이 4 01010 👉 2번, 길이 5 010101 👉 3번, 길이 6 0101010 👉3번, 길이 7 이 규칙성을 따라서 코드..