본문 바로가기

Java

(110)
[Java] 핵심 기본편 - 문자열, 제어문, 배열, 아스키 코드(ASCII) 1. 문자열문자열문자열: 여러 문자들의 집합String s = "I like Java";문자열의 기능설명예시결과length길이s.length();I like Java(띄어쓰기 포함)11toUpperCase대문자로s.toUpperCase();I LIKE JAVAtoLowerCase소문자로s.toLowerCase();i like javacontains포함 여부s.contains("Java");I like JavaTrueindexOf위치 정보s.indexOf("Java");I like Java7lastIndexOf마지막 위치 정보s.lastIndexOf("a");I like Java10startsWith문자열로 시작하는가?s.startWith("I like");I like JavaTrueendsWith문자열로..
[Java] 핵심 기본편 - 자료형, 변수, 형 변환, 연산자 1. 자료형과 변수자료형자료형: 자료의 형태(Data Type) (기본 자료형 vs 참조 자료형)기본: 실제 데이터 값을 저장int, long, float, double, boolean, char ...자료형데이터크기(byte)표현 범위int정수4-2,147,483,648 ~ 2,147,483,647long정수8-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807float실수4(정밀도 기준) 6~7자리double실수8(정밀도 기준) 15자리boolean참/거짓1True or Falsechar문자2하나의 문자 참조: 데이터가 저장된 메모리 주소 값을 저장클래스, 인터페이스, 배열, 열거형 ... (String) 변수변수: 자료를 저장하기 위한 공간자료형 변수명 ..
[알고리즘] 해시 - Lv.2 전화번호 목록 해시1. 전화번호 목록phone_book.sort(): 비교하기 편하게 전화번호 목록 정렬for i in range(len(phone_book) -1): phone_book 리스트만큼 for문을 돌리되, index range error가 발생하지 않도록 -1for문에서 -1을 하지 않을 경우, if문을 돌면서 range 에러 발생만약 len(phone_book) = 3이라면, if문에서 phone_book[3] 없는 인덱스를 호출하는 상황 발생어떤 번호가 다른 번호의 접두어로 있다면 False / 그렇지 않으면 Trueif phone_book[i+1].startswith(phone_book[i]): 뒷 번호에 앞 번호가 포함되어 있다면answer = False: False로 변경startswith(): ..
[알고리즘] 해시(Hash) 이론 이해하기 해시 Hash 알고리즘1. 개념Key : Value 형태를 갖는 자료구조전화번호부를 생각하면 이해하기 쉬움이름 = Key, 전화번호 = Value무언가 찾기 위한 검색어 = Key, 검색 결과 = Value종류배열해시내용정수로만 접근할 수 있음String type이나 다른 어떤 데이터형을 기반으로 자료구조 접근, 데이터 관리 가능= 모든 Data type으로 접근이 가능함예시친구 이름을 알아도 전화번호를 검색할 수 없음 → For문을 끝까지 돌려서 내가 찾는 친구가 맞는지 확인해야 함전화번호부장점구현이 쉬움검색 성능이 좋음(index를 이용한 무작위 접근 가능)참조를 위한 추가 메모리 할당이 없음데이터 저장/검색 속도가 빠름key 중복여부 확인이 쉬움단점자료 삽입/삭제 시 비효율적(다음 항목의 모든 요소..
[알고리즘] 해시 - Lv.1 완주하지 못한 선수 해시1. 완주하지 못한 선수sort() 함수: list 정렬zip() 함수순회 가능한 객체를 인자로 받고, 각 자료형의 각 요소를 나눈 후 인덱스끼리 잘라서 리스트로 반환해 줌주의사항: 인자의 길이가 다를 경우, 가장 짧은 길이의 인자에 맞춰지고 나머지는 버려짐list1 = [1, 2, 3, 4]list2 = ['one', 'two', 'three', 'four']for x, y in zip(list1, list2) => 1 one, 2 two, 3 three, 4 four마라톤을 완주하지 못한 단 한 명만 찾으면 됨1. 참가자 명단과 완주자 명단 비교하기for p, c in zip(participant, completion):if p != c:return p2. 모든 순회가 끝난 후에도 완주하지 못한 ..
[알고리즘] 해시 - Lv.1 폰켓몬 해시1. 폰켓몬최대한 많은 종류를 포함해야 하는데set(집합): 순서가 없음, 중복을 허용하지 않음answer = len(set(nums))최대 N/2마리 선택 가능    if answer > len(nums)/2:         return len(nums)/2[3, 3, 3, 2, 2, 2]라면answer = len(set(nums)): 3, 2 = 2종류len(nums)/2 = 3을 넘지 않기 때문에 answer = 2[3, 3, 3, 2, 2, 4]라면answer = len(set(nums)): 3, 2, 4 = 3종류len(nums)/2 = 3을 넘지 않기 때문에 answer = 2[3, 1, 2, 3]라면answer = len(set(nums)): 3, 1, 2 = 3종류len(nums)/2 ..

반응형