Numpy - .random 메소드 np.random : NumPy의 난수 추출 메소드로, Python의 random 함수를 보강한 것이기에 속도가 훨씬 빠르다는 장점이 있다. np.random의 기본 메소드 (하늘색 : 생략 가능) · np.random.normal : 표준 정규분포를 따르는 난수 값 생성. · np.random.rand(shape) : 0 이상 1 미만인 난수 값 생성. · np.random.randn(shape) : 0이상 1 미만인 표준 정규분포를 따르는 난수 값 생성. · np.random.randint(min, max, shape) : min 이상 max 미만인 정수 중 하나를 생성. · np.random.seed(num) : 난수의 시드값을 지정해 이후 출력할 때도 같은 난수..
클래스와 다형성 다형성 : 프로그램 언어의 각 요소들이 다양한 자료형에 속하는 것이 허가되는 성질. ↔ 단형성 : 프로그램 언어의 각 요소들이 한가지 자료형만 가지는 성질. 단형성을 갖는 자료형 : bool, char, short, int, long, float, double 등 다형성을 갖는 자료형 : var(JavaScript), Python의 변수, 상속 관계의 Class 등 상속(Inheritance) : 코드 중복을 줄이기 위해 한 클래스가 다른 클래스에 정의 된 변수나 함수를 이어받아 그대로 이용하는 것. 이때 상속은 자식 클래스 → 부모 클래스의 방향으로만 이루어지며, 한 번에 한 부모에게만 상속이 가능하다. class Animals{};// 부모 클래스 class Dogs extends A..
String : .equals()와 ==의 차이, 그리고 StringBuffer 자바에서 String 자료형 비교를 하다 보면, 같은 값임에도 불구하고 .equals()와 ==의 결과값의 차이가 나타날 때가 있다. 이러한 차이는 어떤 이유에서 비롯된 것일까? .equals() : 두 문자열의 값이 같은지 비교함. == : 두 문자열의 메모리 주소값이 같은지 비교함. 때문에 같은 값이 있더라도 ==로 비교하게 되면 메모리 주소값이 달라 false가 출력될 수 있다. 또한 JAVA의 String 객체는 아래와 같은 특성이 있다. C와 달리, 자바의 String은 변수 자체에 저장되는 것이 아닌 String Object로 생성이 되며, Object의 값이 같은 경우 새로운 Object를 생성하는 것이 아닌 주..

백준 14500번 : 테트로미노 등급 : Gold IV 14500번: 테트로미노 (acmicpc.net) 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 사용 알고리즘 : Brute-Force, DFS, Backtracking 사용 자료구조 : Vector DFS와 백트래킹, 그리고 예외 케이스에 대한 탐색으로 구현할 수 있다. 위의 사진을 보았을 때, 테트로미노의 5개의 도형 중 마지막 도형만 제외하면 모두 DFS로 탐색이 가능하다. 즉, 5번째 도형 = 예외 케이스. 이 부분만 유의하면 어렵지 않게 구현이 ..
백준 3020번 : 개똥벌레 등급 : Gold V 3020번: 개똥벌레 (acmicpc.net) 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 사용 알고리즘 : - 사용 자료구조 : Vector 이분 탐색이라고 쓰여있지만 딱히 이분 탐색 알고리즘을 사용하지 않아도 되는 문제이다. 첫 접근은 이중 for문으로 각 자리를 계산하는 방식으로 진행하였다. → TLE 때문에 석순과 종유석의 벡터를 각각 구현해주고, 각각의 for문을 누적 합으로 구현했다. Top vector : 종유석 지정 벡터. Bottom vecto..