전체 글 (94) 썸네일형 리스트형 [JAVA] 기초문법 - 내부클래스 내부 클래스 클래스 내부에 있는 클래스 인스턴스 내부 클래스 인스턴스 내부 클래스 안에서 static 변수는 사용할 수 없다.(프로그램이 로드될떄 메모리에 올라가기 때문에 아직 생성되지 않은 클래스 안에서 생성이 불가능하기 때문에.) 이와 같이 아웃클래스를 먼저 생성하고 내부 클래스 인스턴스를 생성 가능한 문법도 존재한다. 정적 내부 클래스 -static 키워드 사용가능. -아웃 클래스 생성과 상관 없이 사용가능하다.(static 클래스 이기 때문에 인스턴스 생성과 상관 없이 프로그램이 로드될때 메모리에 올라가기 때문이다.) -단 아웃 클래스 멤버변수 참조가 불가능하다. 아웃클래스 생성과 상관없이 인스턴스 생성해서 사용할 수 있다. 지역 내부 클래스 클래스 안에 메서드에서 생성되는 클래스를 의미한다. 메.. [JAVA] 기초문법 - 컬렉션 프레임워크(TreeSet, HashMap, TreeMap) String 타입은 내부적으로 comparable와 comparator가 구현되어 있기 때문에 객체 비교가 가능함.(자동정렬가능) 사용자가 정의한 객체를 비교하기 위해서는 별도에 구현이 필요하다.(자동정렬을 위해) 스트링인 경우 스트링 내부에 compareto가 구현되어 있기 때문에 해당 함수를 호출하여 비교해서 오름차순 내림차순 결정가능. 리턴이 양수면 오름차순 정렬 리턴이 음수면 내림차순 정렬 comparator 인터페이스을 구현하는 경우에는 compare()을 구현해야함. 내림차순 정렬 보통 두 인터페이스 중 하나만 구현해서 사용한다. 기존에 있는 정렬방식을 바꾸어 사용할때 comparator을 구현한다. 기본적으로 comparable을 많이 사용한다. 파이썬 딕셔너리와 비슷한 개념. 해시맵 사용법.. [JAVA] 기초문법 - 컬렉션 프레임워크(stack,queue,hashset) 어레이 리스트를 이용한 스텍 구현 테스트 코드 어레이리스트를 이용한 큐 구현 hasnext()는 다음 반환할 데이터가 있는지 체크하느 것. next()는 데이터를 가져오는 것. get이 제공되지 않기 떄문에 iterator를 사용해야함. id 값으로 객체가 같은지 판단하기 위해서는 member클래스에서 equlas()와 hashcode()를 오버라이딩 하여야한다. string 같은 클래스들은 기본적으로 구현이 되어 있다. 사용자가 직접만드는 클래스인 경우에 필요에 따라 오버라이딩 해야하야한다. 오버라이딩 하지 않으면, 아이디 값이 같아도 다른 객체로 판별한다. [JAVA] 기초문법 -컬렉션 프레임워크 (ArrayList) 컬렉션 과 맵은 인터페이스임. 컬렉션은 하나의 데이터만 핸들링 맵은 쌍으로 되어 있는 데이터만 핸들링 list는 선형자료구조(순서가 존재, 중복가능) set은 수학의 집합 개념(중복x, 순서의 개념이 없다.) 해시테이블은 동기화 지원 해시맵은 동기화 지원 x properties는 파일에서 데이터를 불러서 key-valuse페어 로 저장하는 기능을 제공 iterator을 이용해서 데이터를 순회할 수 있음. 회원관리 프로그램 멤버 클래스 arraylist로 멤버 관리하기 어레이리스트 클래스 테스트 코드. [python] 코딩테스트 대비 - 소수(에라토스테네스 체) 문제) 답안 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 import sys #sys.stdin=open("input.txt","rt") #숫자마다 2부터 시작해서 소수를 체크하는 방식은 시간초과가 발생함. N=int(input()) check=[0]*(N+1)#총 n+1개의 리스트 (인덱스3은 숫자3을 의미) count=0 for i in range(2,N+1):#인덱스 2부터(0 1은 확인할 필요 없음,) N까지 반복 if check[i]==0:#i인덱스가 소수라면 count+=1#카운트 증가 for j in range(i,N+1,i):#i의 배수들은 소수가 아님을 표시 check[j]=1 print(count) Colored by Color Scripter cs [python] 코딩테스트 대비 - 자릿수의 합 문제) 답안 코드) -2가지 방법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import sys #sys.stdin=open("input.txt","rt") #방법1 - 숫자 그대로 이용 def digit_sum2(x): num=0 while x>0: num+=x%10#10으로 나눈 나머지 ex)121을 10으로 나눈 나머지는 1 즉, 한자리 수를 의미 x=x//10#10으로 나눈 몫 ex) 121를 10으로 나눈 몫은 12 여기서 다시 10으로 나눈 나머지를 구하면 2(다음 자리수 접근) return num #방법 2 - 문자열 이용 def digit_sum(x): sum=0 for i in str(x):#.. [python] 코딩테스트 대비 - 정다면체 문제) 답안 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 import sys #sys.stdin=open("input.txt","rt") N,M=map(int,input().split()) cnt=[0]*(N+M+2)#덧셈 결과 카운팅할 리스트 cnt[2]에는 두 눈의 합이 2인 경우 카운트가 삽임됨. for i in range(1,N+1):#N면체 주사위 for j in range(1,M+1):#M면체 주사위 cnt[i+j]+=1#두 눈의 합 카운트 증가 for i in range(2,len(cnt)): if cnt[i]==max(cnt):#최대 값 이라면 출력 print(i,end=' ') Colored by Color Scripter cs [python] 코딩테스트 대비 - 대표값 찾기 문제) 선수지식 및 답안코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #[선수지식] - 최솟값 구하기 arr=[5,3,7,9,2,5,2,6]#배열에서 가장 작은 값을 찾아보자 arrMin=float('inf')#변수에 무한대 숫자 저장, 배열 첫번째 요소를 저장해도 됨. #for i in arr: 로도 접근 가능. for i in range(len(arr)):# 배열 수를 하나씩 접근하며 가장 최소값 찾기 if arr[i] 이전 1 2 3 4 5 6 7 8 ··· 12 다음