본문 바로가기

전체 글

(48)
[Python] enumerate, zip, permutations, combinations enumerate def func_b(exp): for index, value in enumerate(exp): # "123+45" (0, '1') (1, '2') (3, '3) (4, '+') print(index, value) if value == '+' or value == '-' or value == '*': return index 문자열 -> 리스트에 하나씩 넣기 def solution(num): # Write code here. # num + 1 한 것에서 0은 1로 바꾼 것 return num += 1 answer = list(str(num)) # '663' -> ['6', '6', '3'] for idx, n in enumerate(answer): if n == '0': answer[idx..
[Python] self, __init__, 추상 클래스, 상속, 클래스 변수, 객체 변수 self 파이썬 메서드의 첫 번째 인자로 항상 인스턴스가 전달된다. class Foo: def func1(): print("function 1") def func2(self): print("function 2") >>> f = Foo() >>> f.func2() function 2 >>> 이때 func2()를 호출하면 잘 작동한다. 호출할 때는 아무것도 전달하지 않는 이유는 첫 번째 인자인 self에 대한 값은 파이썬이 자동으로 넘겨주기 때문이다. >>> f.func1() Traceback (most recent call last): File "", line 1, in f.func1() TypeError: func1() takes 0 positional arguments but 1 was given >>..
[Java] 생성자 내에서 생성자 호출하기 상속을 하려면 부모가 먼저 있어야지 생성자 안에서 다른 생성자를 호출하는 경우가 있다. 특히 자식 클래스가 부모 클래스를 상속받고 있다면, 자식 클래스의 객체를 생성하면서 생성자가 호출될 때 첫 줄에 부모 클래스의 생성자가 호출된다. 만약 부모 클래스의 생성자 코드 상에 생략되어 있다면, 자바 컴파일러가 알아서 생성해주고 부모 클래스의 생성자 코드가 실행된다. 이는 상속 관계에서 부모 클래스의 멤버들을 먼저 초기화해주기 위함이다. 상속 받는다는 것은 자식 입장에서 부모 클래스에 있는 멤버들을 자유롭게 갖다가 쓸 수 있어야 한다는 것이므로 부모 클래스의 멤버들을 먼저 초기화해주게 되는 것이다. 내부적인 동작으로는 자식 클래스의 객체가 생성되기 전에 부모의 객체가 먼저 생성되고 자식의 객체가 생성된다. 이러..
[Java] 참조 변수, 메서드와 생성자 배열 초기화 시 배열 크기 반드시 설정해줘야 한다 int [] myArray = new int []; // error "array dimension missing" 반드시 배열 초기화 시 배열 크기를 설정해줘야 한다. 그래야 배열을 초기화 한 것이다. int [] myArray = new int [100]; // good 참조 변수 헷갈릴만한 예제 반드시 primitive type이 아닌 변수는 모두 참조 변수라서 값을 저장하거나, 실행하거나, 호출하려면 반드시 new 연산자를 통해서 객체를 생성해줘야 한다는 것을 주지하자. 아래의 코드는 틀린 코드이다. 틀린 부분을 찾아보자. MyRectangle [] rects = new MyRectangle [100]; rects[n].lu = new MyPoint..
[Java] 클래스, 객체, 참조변수 클래스 결국 하나의 데이터 타입 (int 나 double 처럼) 사용자 정의 타입이라고 부르기도 함 배열 변수를 선언할 때도 배열 원소 각각의 타입을 클래스로 할 수도 있음 // 클래스는 결국 하나의 "타입" Person1 [] members = new Person1 [10]; // members 배열의 각각의 타입이 Person1 클래스 (타입) members[0] = first; // 참조변수 first members[1] = new Person1(); members[1].name = "David"; members[1].number = "1234567890"; System.out.println("Name : " + members[1].name + ", Number : " + members[1].nam..
221110 - 늦은 건 없어 해야 할 걸 해야 할 뿐 보호되어 있는 글입니다.
221109 - 다시 보호되어 있는 글입니다.
프로그래머스 lev2 : 괄호 변환 문제 https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 잘못 푼 풀이 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해 1단계부터 다시 수행합니다. 3-1. 수행한 결과 문자열을 u에 이어 붙인 후 반환합니다. 이 부분을 수정해주자 되었다. 다시 1다계부터 수행해준다는 것은 solution(v)를 해주면 1단계부터 다시 수행하게 되고, 그 수행한 결과의 문자열은 solution(v)의 리턴값 그 자체이므로 반환해주는 리턴 ..