[최장 증가 부분 수열(LIS)] 최장 증가 부분 수열(Longest increasing subsequence) 알고리즘은 주어진 수열에서 제일 길게(=최장) 증가하는 부분적인 수열을 의미합니다. 문제를 해결할 수 있는 방법은 다양하지만, 보통 DP(동적 프로그래밍)와 Binary Search(이분 탐색)를 사용합니다. DP는 이중 for문을 사용하므로 시간복잡도가 O(n^2)이고 Binary Search는 O(nlogn) 시간복잡도를 가집니다. 그렇기 때문에 DP로 구현하지 않고 Binary Search로 구현하는 감각을 익혀야 합니다! 최장 증가 부분 수열 알고리즘으로 문제를 풀 수 있다는 가정 하에, Binary Search로 구현하면 n의 범위에 상관없이 해결할 수 있기 때문입니다. [DP를 활용..
전체 글
아래 코드에서 1번과 2번의 결과값을 예상할 수 있나요? import sys n = int(sys.stdin.readline().rstrip()) print(*[f"Hello World, Judge {x}!\n" for x in range(n)]) # 1번 print(*[f"Hello World, Judge {x}!" for x in range(n)],sep="\n") # 2번 3 2 1 ...❗❗ 두 결과값이 같다고 예상하신다면 글을 끝까지 보는 걸 추천드립니다! 👀 정답은 서로 다른 결과값을 출력하는데요, # 1번 Hello World, Judge 0! Hello World, Judge 1! Hello World, Judge 2! Hello World, Judge 3! Hello World, Judg..
[시험 결과] 오늘 필기 합격자 조회가 가능해서 확인해 보니 합격이었어요! 사실 정보처리기사 필기는 CBT 형식이므로 시험 보는 당일 02.17(토)에 바로 확인할 수 있어서 합격 결과를 이미 알았지만요...! ㅋㅋㅋㅋㅋ [시험 준비] 설 연휴를 포함하여 일주일 동안 공부하였습니다! SQLD이든 ADsP이든 정보처리기사 필기이든 다 똑같은 문제은행식 시험이라고 생각하기 때문에 그렇게 많은 시간을 투자하지 않았어요. 대략 순 공부량은 전공자 기준으로 20~25시간 하였습니다. 문제은행식 시험은 아래와 같은 순서가 국룰!이라고 생각합니다. SQLD, ADsP 모두 같은 방식으로 합격하였습니다. 정보처리기사 필기 요약본 기출문제 공부를 하면서 기존에 알고 있던 CS.. 예를 들어 ACID, 페이징 교체 알고리..
[프로토타입 기반 프로그래밍] 프로토타입 기반 프로그래밍 언어 중 대표적인 언어가 JavaScript입니다. 클래스 기반 프로그래밍 언어인 C++과 달리, 객체를 생성한 후에도 프로퍼티나 메서드를 동적으로 추가/수정이 가능합니다. 또한 프로토타입을 공유하고 있는 객체들은 서로 프로퍼티나 메서드를 공유하고 있기 때문에 메모리 절약을 할 수 있습니다. [프로토타입 알아보기] function 사람() { this.이름 = "silverCastle"; this.나이 = 27; } var 나 = new 사람(); function 키워드를 사용하여 prototype에 접근할 수 있는데 사람 = 부모 나 = 자식 prototype = 유전자 역할을 한다고 이해하면 됩니다. 그렇기 때문에 '사람'의 유전자를 조회해 보..