본문 바로가기

전체 글

(94)
[python] 코딩테스트 대비 - K번째 큰 수 문제) 답안코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import sys #sys.stdin=open("input.txt","rt") N,K=map(int,input().split())#N,K입력 받기 box=list(map(int,input().split()))# N개의 정수 입력받기 res=set()#중복방지를 위한 set 자료구조 - 집합개념으로 중복허용 안함(같은 수를 넣어도 추가 안됨.) #3정수 선택 3중 반복문 for i in range(N): for j in range(i+1,N): for q in range(j+1,N): res.add(box[i]+box[j]+box[q]) res=list(res)#정렬을 위한 list화 res.sort(reverse=T..
[python] 코딩테스트 대비 - K번째 수 문제) 답안코드) 1 2 3 4 5 6 7 8 9 import sys #sys.stdin=open("input.txt","rt") T=int(input())#테스트 케이스 수 입력받기 for i in range(1,T+1):#케이스 수 만큼 loop N,s,e,k=map(int,input().split())#N s e k 입력받기 box=list(map(int,input().split()))# N개의 숫자 list로 저장 box=box[s-1:e]#s번째부터 e번째 까지 추출 box.sort()#오름 차순 정렬 print("#%d %d" %(i,box[k-1]))#출력 형식에 맞게 k번째 수 출력
[python] 코딩테스트 대비 - K번째 약수 문제) 답안 코드) 1 2 3 4 5 6 7 8 9 10 11 12 import sys #sys.stdin=open("input.txt","rt") N,K=map(int,input().split())#공백으로 두 숫자를 입력받아서 정수화 count=0 for i in range(1,N+1): if N%i==0:#약수 검사 count+=1#약수라면 카운트 1증가 if count==K:#해당 약수가 k번째 약수라면 출력 후 종료 print(i) break else:#break로 for문이 종료되지 않았다면 -1출력 즉, k번째 약수 존재하지 않음. print(-1)
[JAVA] 기초문법 - 컬렉션 프레임워크 배열은 fixed-length로 시작함. 인덱스 연산이 가능하다. 시간복잡도 O(1) 첫번째 인덱스는 0부터시작한다. 물리적 위치와 논리적 위치가 같다. 중간에 비어있을 수 없다.(중간 삽입과 삭제할때 연산이 많다. 한칸씩 땡기거나 밀어야하기 때문) 시간복잡도 O(n) 크기가 다 채워져있고 추가하려면 더 큰 배열을 선언하고 기존배열을 복사하는 방식을 사용한다. 자바의 ArrayList가 배열을 구현한 것이다. 링크드리스트 노드 단위로 연결되어 있는 구조이다. 하나의 노드는 값과 다음 노드의 주소 2가지가 저장된다.(가리킬 것이 없으면 null저장) fixed length가 아니다. 물리적 위치와 논리적 위치가 다르다. 논리적으로는 붙어 있지만 논리적으로는 떨어져 있다. 배열의 단점이었던 중간삽입 중간 삭..
[JAVA] 기초문법 - 제네릭 프로그래밍 자바5부터 나온 기술 반환형을 Object 타입으로 설정해서 모든 타입을 받을 수 있게 코딩 가능하다.(단, 형변환이 필수) 방환이 Object이기 때문에 형변환이 필수. ㅡ> 제네릭을 사용하면 형변환을 안해도 사용할 수 있다. 제네릭 사용 클래스 제네릭 클래스 사용법 다음과 같이 제네릭 클래스를 생성하면 Material 클래스를 상속받은 타입만 T에 들어갈 수 있게 제한이 가능하다.
[JAVA] 기초문법 - 기본클래스(2) 문자 하나와 문자열은 다르다. 문자 하나는 char형 자료형이다(기본 2byte) 문자열은 문자의 집합(시컨스)이다. 두 방법은 다른 방법이다. 인스턴스로 생성하면 힙메모리에 저장되고 힙메모리를 가르키는 방식이다. 인스턴스로 생성하지 않는 방식은 상수 풀에 저장하고 그것을 가르키는 방식이다.(프로그램이 로드 될때 생성, 데이터영역, 상수, 스테틱 등이 저장됨) 인스턴스로 생성하면 문자열의 주소를 비교하기 때문에 fasle가 출려된다.(주소가 다르다.) 인스턴스로 생성하지 않으면, 같은 문자열은 같은 주소 이기때문에 true가 출려된다.(상수 풀, 여기서도 주소를 비교하는 것이다.) 두 문자열을 이어붙이는 코드이다. 단, str1에 str2가 붙은 것이 아닌 부 문자열을 붙인 새로운 메모리가 생성되고 그 ..
[JAVA] 기초문법 - 기본클래스 기본 클래스 자바에서 제공해주는 클래스중에 자주 사용하는 클래스들의 설명이다. 모든 클래스는 오브젝트타입으로 형변환이 가능하다. 오브젝트 메서드중에서 final 메서드들은 하위 클래스에서 정의 할 수 없다.(일부 메서드만 재정의 가능) String 클래스의 toString메서드는 문자열을 출력하도록 재정의 되어 있음. 책의 제목과 저자의 이름을 출력하려면 toString 메서드를 정의해서 할 수 있음. 두 인스턴스의 주소 값을 비교하기 위한 메서드이다. 인스턴스가 달라도 논리적으로 같은 객체를 구별하기위해 재정의해서 사용하기도한다. 두 인스턴스의 주소를 비교한다. 결과값은 FALSE 두 문자열이 같은지를 체크한다.(논리적 동일성) 결과같은 TRUE 일반 클래스 인스턴스를 비교하면 위에 두경우 모두 FAL..
[JAVA] 기초문법 - 인터페이스(3) java8부터 디폴트메서드, 정적메서드, private메서드가 추가됨. 디폴트메서드: 구현코드를 가지는 메서드 재정의하지 않으면 디폴트 메서드를 사용할 수 있음. 정적메서드: 인스턴스 생성과 상관 없이 사용 할 수 있음. private 메서드: 인터페이스 내부에서만 사용하기 위해 사용함. 메서드에 구현코드를 삽입 할 수 있지만 그렇다고 해서 인터페이스 인스턴스를 생성하는 것은 불가능 하다. 디폴트 메서드 재정의 디폴트 키워드를 사용한 메서드 calc.description();으로 호출 가능.(해당 인터페이스를 구현하는 클래스의 인스턴스) 디폴트 메서드는 구현하는 클래스에서 재정의 가능하다. static 메서드 사용법 인터페이스이름.메서드명 으로 호출 가능하다. static메서드는 인스턴스의 생성과 상관 ..