분류 전체보기 372

2장 : 시간 복잡도

입력 크기에 비례하는 것 / 알고리즘의 실행 시간 & 데이터의 상관관계 통상 1초가 넘어가면 안됨 - 통상 배열(for문 선형 탐색) -> O(N) - 단순 연산 : O(1) 이진 : O(logN) 선형 : O(N) 정렬 : O(N logN) 조합 : O(2^N) 순열 : O(N!) - 입력 조건에 명시된 최악의 경우를 시간 복잡도에 대입 -> 1억이 넘지 않으면 통상 Ok (시간제한 1초시) - 시간 제한이 없더라도 대부분의 코드는 10초 내에 실행 완료 (10억이 넘어가면 안됨) - 길이 N 정수로 이루어진 배열 -> M개의 숫자 유무 10,000개 / 100,000개 최악 -> 10억 이진 탐색 -> O((N+M)logN) HashSet -> O(M+N) - 상수, 곱하기, 사칙연산은 고려되지 않는..

코테 기초 2024.03.20

1장 : 코테 설계 및 작성법

001 가독성 현재년도, 출생년도를 인자로 넣어서 나이를 구하는 함수 함수이름을 function 대신 age로, 인자를 a-b대신 currentyear, birthyear로 - 002 효율 자연수 1~N 합 구하기 for문보다 n(n-1)/2로 하는게 효율적 - 003 디버깅 및 시행착오 1 - 단계별 코드 작성 2 - 하나의 단계 작성 후 실행- 로그 보면서 검증 3 - 2에서 조금 더 자세히 로그 찍으면서 수정 - 004 전화번호 PhoneNumber클래스 final String phoneNumber선언 + slot설정 + set으로 주입 입력을 replaceAll Regex로 받는다 (String으로 받을때는 isDigit로 검증) toString 오버라이드 equals 오버라이딩 : contain..

코테 기초 2024.03.20

깃 깃헙

- git 터미널 사용으로 github에 올린다 - commit history -> push - 처음파일 init 필요 / add - 처음 리포지토리 이메일 네임 설정 Origin mater pull이랑 branch? - 신입 당겨오기 Clone git->복사코드 폴더 폴더 안써주면 자동으로 프로젝트 이름 폴더로 들어감 - master에 올리지 않고 공간 새로 파주기 (코드 작성했으나 테스트 전에는 수합x) Git push origin freshman 이후 pull request : 마스터에 갈 수 있게 허락해주세요 Branch 마음에 안들면 review change Merge pull request Add - comiit - push 상대가 작업한 파트가 있을때 Add - commit - pull - ..

람다 관련

sP ; 언제나 @funtionalInterface + public interface 3가지 참여자가 있다인터페이스인터페이스를 args로 사용하는 메소드메인단- 람다는 그냥 arg로 사용되는 익명 구현 객체이며, 그것의 간편한 작성법이다컴파일 시 람다를 익명 구현 객체로 변환해 컴퓨터가 자각한다 - 메소드에서는 인자 공급만 하고, Overriding은 나중에, main단에서 사용시 (람다 형식으로) 하는 것   *왜 바로 위인 method단을 건너뛰고, 메인단에서 사용하는 두 단계 위에서 재정의하나?> 익명 구현 객체이므로> 그리고 메인은 사실 method를 사용만 하는 역할이므로, 메소드를 static으로 불러오거나. 기껏해야 메소드를 가진 class를 작성하는 것 뿐이다(클래스객체.메소드) - abs..

부트 버전 / 메이븐 버전 / Querydsl Qitem생성 / 시큐리티, 타임리프 버전

(요약) 프로젝트 메인인 부트 버전에 따라 사용가능한 디펜던시 버전이 다를 수 있다 디펜던시 중 group / artifact는 필수 scope / classifier / version은 상황에 따라 인텔리제이 재실행시 오류 시도 1 - parent.version으로 설정 -> deprecated되었다고 함 시도2 - project.parent.version으로 바꿔주기 -> 성공 - Quertdsl 관련 : 디펜던시 넣어준 후 컴파일 시도시 Qitem이 생성안됨 시도1 -> 버전 업그레이드 -> 실패 시도2 -> clean으로 밀어버린 후 target->generated 삭제 -> 다시 컴파일 -> 실패 시도 3 -> 성공 - (전체적인 버전 셋팅) 문제1 - 타임리프가 안됨 문제2 - deprecat..

SQL 설치 + 맥 환경에 적응

맥북을 처음 사용하여, 차이가 있을 수 있다 DB는 터미널-홈브류 기반으로 설치를 많이 하고 깃 역시 마찬가지 "sudo /usr/local/mysql/supported-files/mysql.server start " 등의 명령어 추후 회사에서 맥으로 작업하게되면 이것도 배울 것 깃으로 CI/CD시 터미널을 또 사용해야 할 것 다만 나는 macOS11 옛날 버전이어서 홈브류로는 설치가 불가했다 GUI버전을 통해 설치해도 상관없다 ㄸㅗ ARM과 x86 에 대해 다르게 동작하는 것도 알 수 있었다 https://www.redhat.com/ko/topics/linux/ARM-vs-x86 ARM과 x86의 차이점은 무엇일까요? 비슷한 속성을 지닌 ARM과 x86은 둘 다 오늘날 가장 빠른 슈퍼컴퓨터에서 사용되지..