분류 전체보기 645

[파이썬] 괄호 변환

programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴 programmers.co.kr 문제 설명 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 콘..

coding test 2020.12.11

[파이썬] 나누어 떨어지는 숫자 배열

programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j..

coding test 2020.12.09

[파이썬] 올바른 괄호

programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호 programmers.co.kr 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 ret..

coding test 2020.12.09

[파이썬] 가장 큰 정사각형 찾기

문제 설명 1와 0로 채워진 표(board)가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 1로 이루어진 가장 큰 정사각형을 찾아 넓이를 return 하는 solution 함수를 완성해 주세요. (단, 정사각형이란 축에 평행한 정사각형을 말합니다.) 예를 들어 1 2 3 4 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 가 있다면 가장 큰 정사각형은 1 2 3 4 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 가 되며 넓이는 9가 되므로 9를 반환해 주면 됩니다. 제한사항 표(board)는 2차원 배열로 주어집니다. 표(board)의 행(row)의 크기 : 1,000 이하의 자연수 표(board)의 열(column)의 크기 : 1,000 이하의 자연수 ..

coding test 2020.12.08

Dynamic Programming Algorithm

😼 구현 방법 1. 문제를 해결할 수 있는 재귀 관계식을 구한다. 2. 가장 작은 입력사례로부터 상향식 방법으로 문제 해결. 🐸 상향식과 하향식 상향식 접근은 재귀를 사용하지 않는다. 부분 문제를 해결한 후 table에 저장한다. table에 저장된 값을 이용해서 계산해나간다. 하향식 접근은 재귀를 사용한다. 🐣 동적계획법은 문제를 작게 나누고 상향식 방법으로 점차 큰 문제 해결. 오버헤드 발생이 없다.(재귀호출과 비교했을 때 장점) 재귀호출은 내부 시스템 호출 Stack을 사용하는 오버헤드가 발생하기 때문. ★ 분할정복과 동적계획법 비교 - 문제를 작은 사례로 분할하여 해결한다는 점은 동일 - 분할정복은 재귀 호출을 통해 분할하여 정복(Top-Down) - 동적계획은 메모이제이션을 통해 상향식으로 정복..

생성자(Constructor)

인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 1. 생성자의 이름은 클래스의 이름과 같아야 함. 2. 생성자는 리턴 값이 없다. 클래스이름(타입 변수명, 타입 변수명,...){ // 인스턴스 생성 시 수행될 코드 // 주로 인스턴스 변수의 초기화 코드를 작성 } class Card{ Card(){...}// 매개변수가 없는 생성자 Card(String k, int num){...}// 매개변수가 있는 생성자 } 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아니다. ex) Card c=new card(); 1. 연산자 new에 의해서 메모리(heap)에 Card클래스의 인스턴스가 생성. 2. 생성자 Card()가 호출되어 수행. 3. 연산자 new의 결과로, 생성..

JAVA 2020.12.06

Interface

일종의 추상클래스. 오직 추상메서드와 상수만을 멤버로 가짐. 키워드로 class 대신 interface를 사용하는 것만 다르다. interface 인터페이스이름{ public static final 타입 상수이름=값; public abstract 메서드이름(매개변수목록); } interface에도 public 또는 default 사용 가능. 모든 멤버변수는 public static final이어야 함(생략 가능) 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있음(static메서드와 디폴트 메서드는 예외) ★ 인터페이스 구현 - 추상클래스처럼 그 자체로는 인스턴스를 생성x - 자신을 상속받는 클래스 정의 class 클래스이름 implements 인터페이스이름{ //인터페이스에 ..

JAVA 2020.12.06

제어자(modifier)

제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여. 클래스나 멤버변수와 메서드에 주로 사용. 1. 접근 제어자 : public, protected, default, private 2. 그 외 : static, final, abstract, native, transient, synchronized, volatile, strictfp 1. static static을 붙인 변수는 메모리 할당을 딱 한번 해서 메모리의 이점을 얻을 수 있음. 한 변수를 공유하기 위한 용도로 많이 쓰임. 제어자 대상 의미 static 멤버변수 - 모든 인스턴스에 공통적으로 사용되는 클래스변수가 됨. - 클래스변수는 인스턴스를 생성하지 않고도 사용 가능 - 클래스가 메모리에 로드될 때 생성 메서드 -..

JAVA 2020.12.06

변수와 메서드

☆ 변수의 종류와 특징 변수의 종류 선언위치 생성시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수 인스턴스가 생성되었을 때 지역변수 클래스 영역 이외의 영억(메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 1. 인스턴스변수 클래스의 인스턴스를 생성할 때 2. 클래스 변수 - 인스턴스변수 앞에 static을 붙이기만 하면 됨. - 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성의 경우, 클래스변수로 선언(인스턴스변수와 달리, 클래스변수는 모든 인스턴스가 공통된 저장공간을 공유하기 때문) - 인스턴스변수와 달리 인스턴스를 생성하지 않고도 언제라도 바로 사용 ex) 클래스이름.클래스변수 - 클래스가 메모리에 로딩될 때 생성되어 프로그램이 종료될 때 까지 ..

JAVA 2020.12.06

클래스와 객체

클래스 : 객체를 정의 인스턴스화(Instantiate) : 클래스로부터 객체를 만드는 과정 인스턴스(instance) : 어떤 클래스로부터 만들어진 객체 클래스를 인스턴스화하면 인스턴스(객체)이다. 객체는 속성(property)와 기능(function)으로 구성됨. 속성=멤버변수=특성=필드=상태 기능=메서드=함수=행위 ★ 객체의 생성과 사용 클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언 변수명=new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장 Tv t; t=new TV();

JAVA 2020.12.06