전체 글

개발자를 꿈꾸는 블로그입니다.
프로그래밍 공부/Python

[Python] sys.setrecursionlimit()

평소에 알고리즘 풀 때, BFS로만 풀어서 DFS로도 좀 풀어볼까 하다가 예제는 맞는데 자꾸 런타임 에러로 틀려서 검색하면서 찾아보다가 '# dfs 반복 횟수 제한 해제' 라고 주석처리 되어있는게 있길래 한번 넣어봤더니 통과했다. 찾아보니까 파이썬에서는 재귀를 사용할 때 최대 깊이가 기본 1,000회로 설정되어 있다고 한다. 그래서 아래 코드를 사용하면 이 설정이 늘어나게 되는 것. import sys sys.setrecursionlimit(10 ** 9) 이런 식으로 코드를 작성하면 최대 깊이가 10**9로 바뀌게 된다. input은 sys.stdin.readline bfs는 from collections import deque dfs는 sys.setrecursionlimit(10 ** 9) 이런 수준..

프로그래밍 공부/Java

[JAVA] super 키워드

super super는 부모 클래스로부터 상속받은 필드나 메서드를 자식 클래스에서 참조하는데 사용하는 변수다. 조금 정리해서 말하자면 자신이 상속받은 부모를 가리키는 참조 변수인 것 this의 경우 필드, 매개변수명이 동일해서 구분하기 위해 사용했다. super는 부모 클래스의 멤버와 자식 클래스의 멤버 명이 같을 경우 사용하여 구별할 수 있다. 이런 식으로 super 참조 변수는 부모 클래스의 멤버에 접근할 수 있게 된다. 아래 예제를 주석과 함께 살펴보자 class Parent { int a = 10; } // Parent 클래스에서 a = 10 선언 class Child extends Parent { // Child 클래스에서 Parent 클래스 상속 -> a = 10을 가져옴 int a = 20;..

프로그래밍 공부/Java

[JAVA] this 키워드

this와 this() 자바에서 this는 객체 자기 자신(참조값)을 가리키는 레퍼런스 변수이며, 자신의 객체에 접근하기 위해 사용한다. 주로 필드와 매개변수 명이 동일할 때, 명확한 구분을 위해 사용한다. this() 같은 경우는 같은 클래스 내 생성자가 다른 생성자를 호출할 때 사용한다. 생성자는 매개변수를 다양하게 받아올 수 있는데(오버로딩), this()를 이용하면 중복 코드를 간단하게 할 수 있다. 주의할 점으론 생성자에서만 사용이 가능하며, 반드시 호출하는 곳의 첫 번째 문장에 작성해야 한다. 아래의 Member 클래스 예제를 살펴보자 public class Member { private int id; private String username; private int age; public Me..

프로그래밍 공부/Java

[JAVA] static과 final

앞서 final 키워드에 대한 포스팅을 올렸는데, static과 같이 사용하면 내용이 길어져서 따로 정리하려고 한다. 우선 static의 경우 객체 생성 없이 사용할 수 있는 필드, 메서드를 생성하고자 할 때 사용된다. static으로 선언될 경우 GC가 관여하지 않는 static 메모리 영역에 적재되어 모든 객체가 공유한다. 물론 너무 남발하면 메모리 할당된 채로 남아있어 좋지는 않다. 특징을 간단하게 요약하자면 아래와 같다. 프로그램이 시작할 때 단 한 번만 생성되고 초기화된다. 인스턴스를 생성하지 않고 바로 사용 가능 해당 클래스의 모든 인스턴스 공유 static과 final 일단 제일 큰 특징은 static과 final를 이용하여 상수 정의에 사용한다. public static final doub..

티키택
택택