목록Development (561)
컴공생의 다이어리
백준 11399번 : ATM (문제 바로가기) 내 코드 import sys n = int(input()) L = list(map(int,sys.stdin.readline().strip().split())) L.sort() L_time = [sum(L[:x]) for x in range(1,n+1)] print(sum(L_time))
백준 5635번 : 생일 (문제 바로가기) 내 코드 import sys n = int(input()) info = [] for _ in range(n): info.append(list(map(str,sys.stdin.readline().strip().split()))) info.sort(key = lambda x : (int(x[-1]),int(x[-2]),int(x[-3]))) print(info[-1][0]) print(info[0][0])
입력값이 보이지 않을 때 input type을 password로 지정해 비밀번호를 받으려고 하니 기호(●)없이 입력되는 문제가 발생했다. 이런 현상이 발생하는 이유는 나눔스퀘어 폰트를 사용하고 있었기 때문이다. 물론 다른 폰트를 사용해도 이와 같은 문제가 발생할 수 있다. 이런 문제가 발생하는 폰트에는 ● 문자를 지원하지 않아서이다. 해결방법 아래와 같은 형식으로 css 코드를 추가해주면 된다. input[type=password]안에는 ● 문자를 지원하는 폰트를 넣으면 된다. 아래 코드에는 구글 폰트를 넣어놨는데 언제까지 될지는 모르겠지만 저대로 써도 아마 작동할 것이다. input[type=password]::placeholder를 사용하지 않아도 되지만 기존에 사용하던 글씨체와 통일성을 주기 위해서..
백준 11650번 : 좌표 정렬하기 (문제 바로가기) 내 코드 import sys n = int(input()) x_y = [] for _ in range(n): x_y.append(list(map(int,sys.stdin.readline().strip().split()))) x_y.sort(key = lambda x : (x[0],x[1])) for x, y in x_y: print(x, y)
클래스 상속 클래스 상속은 새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현하는 것을 말한다. 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속한다. 상속하는 클래스 : 상위 클래스, parent class, base class, super class 상속받는 클래스 : 하위 클래스, child class, derived class, subclass 상속하는 클래스가 A이고 상속받는 클래스가 B일때, 아래와 같이 extends를 사용해서 상속을 하면 된다. class B extends A { } * 주의 사항 * extends 키워드 뒤에는 단 하나의 클래스만 올 수 있음 상속을 구현하는 경우 상위 클래스는 하위..
ArrayList 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했다. 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야했다. 하지만 java.util 패키지에서 제공되는 ArrayList를 사용하면 객체 배열을 좀 더 효율적으로 관리할 수 있다. ArrayList의 사용법 ▶ 생성 ArrayList를 사용하려면 아래와 같이 먼저 ArrayList 객체를 만들어야 한다. ArrayList arr = new ArrayList(); ▶ 추가 : boolean add(E e) 요소 하나를 배열에 추가하려면 add 메소드를 사용한다. add는 단순히 배열 뒤에 데이터를 더하기 때문에 빠르다. arr.add(10); a..
변수의 유효 범위와 메모리 변수가 유효한 범위와 생성되고 소멸되는 life cycle은 변수의 종류마다 다르다. 또한 변수마다 사용되는 메모리도 다르다. 변수 유형 선언 위치 사용 범위 메모리 생성과 소멸 지역 변수 (로컬 변수) 함수 내부에 선언 함수 내부에서만 사용 스택 함수가 호출될 때 생성되고 함수가 끝나면 소멸 멤버 변수 (인스턴스 변수) 클래스 멤버 변수로 선언 클래스 내부에서 사용하고 private이 아니면 참조 변수로 다른 클래스에서 사용 가능 힙 인스턴스가 생성될 때 힙에 생성되고, garbage 컬렉터가 메모리를 수거할 때 소멸됨 static 변수 (클래스 변수) static 예약어를 사용하여 클래스 내부에 선언 클래스 내부에서 사용하고 private이 아니면 클래스 이름으로 다른 클래..
static 변수 만일 여러 인스턴스가 공유하는 기준 값이 필요한 경우 공통적으로 사용할 수 있는 변수가 필요하다. 이럴때, static 변수를 사용하면 된다. static 변수는 인스턴스가 생성될 때 만들어지는 변수가 아니라, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당된다. 따라서 인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조 가능하다. public class Student{ public static int studentCode = 1000;// 인스턴스들이 공유하는 변수 private String name; private int score; public void setName(String name){ this.name = name; } public void setScor..
접근 제어 지시자(access modifier) 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 종류 : private, default, protected, public private : 같은 클래스 내부에서만 접근 가능(외부 클래스, 상속 관계의 클래스에서도 접근 불가) default : 접근 제어 지시자를 선언하지 않은 경우, 동일 패키지 내에서만 접근 가능(상속 관계라도 패키지가 다르면 접근 불가) proteced : 동일 패키지나 상속관계의 클래스에서만 접근 가능하고 그 외 외부에서는 접근 불가 public : 어디서든 접근 가능한 인스턴수 변수 및 메소드 public > default > protected > public 지시자 클래스 내부 동일 ..
오버로딩(Overloading)과 오버라이딩(Overriding) ▶ 오버로딩(Overloading) 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의하는 것을 오버로딩이라고 한다. 아래는 생성자 오버로딩한 것이다. public class Info{ public String id; public String pw; public String name; public Info(){} public Info(String id, String pw){ this.id = id; this.pw = pw; } public Info(String name){ this.name = name; } } ▶ 오버라이딩(Overriding) ..