728x90
반응형
- [ CS/코딩 테스트 ][레벨2][정렬] 가장 큰 수2024-02-15 17:01:091. 문제 numbers 배열의 요소는 0~1000의 숫자이다. 이 숫자를 이어 붙여 가장 큰 숫자를 만들어야 한다. 😉 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=python3 2. 풀이 처음에는 for문과 순열을 이용해 풀이했는데 "시간 초과" 되었다. 고민도 하고 힌트도 찾다가 어썸 한 풀이법을 발견했다. # 파이썬 풀이 def solution(numbers): # 1. 모든 수를 문자열로 변환 numbers = list(map(str, numbers)) # 2. x+y와 y+x를 비교하여 정렬 numbers.sort(key=lambda x: (x * 4)[:4], reverse=True) ''' ..
- [ CS/자료구조와 알고리즘 ][자료구조와 알고리즘] 유데미 강의 "JavaScript 알고리즘 & 자료구조 마스터클래스" 정리(섹션 5: 문제 해결 패턴)2024-02-05 00:02:07섹션 5: 문제 해결 패턴📌 빈도수 세기 패턴 (Frequency Counters)[1, 2, 3], [1, 4, 9] 왼쪽 배열 요소의 제곱이 오른쪽 배열 요소에 딱 맞게 있으면 true, 그렇지 않으면 false를 반환하는 문제indexOf 메서드가 for문 안에 있는 방식의 풀이 코드는 O(n^2) 시간 복잡도를 가진다. indexOf 메서드가 O(n)의 시간 복잡도를 가지고 있어서 중첩 for문과 같은 조건이 되어버리기 때문이다. 따라서 for문 안에서 indexOf 메서드를 사용하는 코드 대신에 for문을 여러 번 사용하더라도 반복문이 중첩되지 않도록 하는 것이 성능에 유리하다. 또한 배열의 경우 객체(배열 요소는 키, 동일 배열 요소의 개수는 값)로 만들면 O(1)의 시간 복잡도로 필..
- [ CS/자료구조와 알고리즘 ][자료구조와 알고리즘] 유데미 강의 "JavaScript 알고리즘 & 자료구조 마스터클래스" 정리(섹션 4: 문제 해결 접근법)2024-01-31 22:14:49섹션 4: 문제 해결 접근법 📌 알고리즘 특정 작업을 달성하기 위한 과정이나 일련의 단계 📌 문제 해결법 1단계 문제의 이해 작업을 수행하면서 어떤 해결책을 마련할지, 애플리케이션이 어떻게 구동되도록 할지, 각 상황에서 어떤 식으로 작동되도록 할지에 대해 확실히 이해한다. 면접관에게 질문을 던져서 문제를 명확히 함으로써 확실히 이해할 수도 있다. 문제 이해는 구체적인 예시를 살펴보는 것과도 관련된다. 2단계 구체적 예시 이 두 가지 단계(문제의 이해, 구체적 예시)는 문제를 이해하고, 입력값과 출력값을 이해하고 경계 조건을 이해하는 것에 관한 것이다. 에러를 어떻게 처리할지, 그리고 사용자가 잘못된 값을 입력하면 어떻게 되는지와 같은 질문들은 처음부터 모든 것이 어떻게 작동해야 하는지를 이해하는 것과 관..
- [ CS/자료구조와 알고리즘 ][자료구조와 알고리즘] 유데미 강의 "JavaScript 알고리즘 & 자료구조 마스터클래스" 정리(섹션 3: 배열과 오브젝트의 성능 평가)2024-01-31 10:28:51섹션 3: 배열과 오브젝트의 성능 평가 📌 객체의 빅오 1. 객체 키, 값의 삽입, 삭제, 접근의 경우 Insertion, Removal, Access → O(1) 2. 객체의 키로 접근하지 않고 값으로 탐색하는 경우 Searching → O(n) 3. 객체 메서드의 빅오 O(n) Object.keys Object.values Object.entries O(1) Object.hasOwnProperty let instructor = { firstName: "김일남", isInstructor: true, favoriteNumbers: [1,2,3,4] } instructor.hasOwnProperty("firstName"); // true 📌 배열의 빅오 1. 배열 앞이나 중간 인덱스에 요소 삽입, 삭제 배..
- [ CS/자료구조와 알고리즘 ][자료구조와 알고리즘] 유데미 강의 "JavaScript 알고리즘 & 자료구조 마스터클래스" 정리(섹션 2: 빅오 표기법)2024-01-25 23:00:37섹션 2: 빅오 표기법(Big O Notation) 📌 Big O Big O는 코드의 성능을 숫자로 표현하는 것이다. What does better mean? Faster? Less memory-intensive? More readable? 📌 시간 복잡도(Time Complexity) 1~n까지의 합을 구할 때 for문을 이용하는 방법과, 수학 공식 n*(n+1)/2를 이용하는 방법을 비교해 보자! // 코드 수행 시간 측정 var time1 = performance.now() addUpTo(1000000000) var time2 = performance.now() console.log(`Time Elapsed: ${(time2 - time1) / 1000} seconds.`) 위 코드와 같은 방식으로..
- [ CS/Linux ][Linux] Let's Encrypt로 TLS 무료 인증서 발급 & 자동 갱신 설정2024-01-16 17:17:59인증서 발급을 위해 chat gpt와 구글링을 통해 발급 방법을 알아보았지만 유튜브의 무료 강의가 더 도움이 되었다. 참고한 영상은 본문에 링크로 표시해 두었다. 1. Let's Encrypt로 TLS(Transport Layer Security) 인증서 발급 우분투에서 진행하였고 certbot이 이미 설치된 상태에서 진행하였다. 그리고 nginx 서버를 사용하고 있다. TLS 인증서 발급 시 리룩스 명령어는 다음과 같은 순서로 사용하였다. 리눅스 정보 확인(이 부분은 생략해도 됨) : hostnamectl 기 발급된 인증서 확인(최초 발급이라면 생략) : certbot certificates 인증서 발급 전 웹서버 중지 : service nginx stop 포트 80 및 443을 사용하는 프로세스 확인..
- [ CS/코딩 테스트 ][레벨1][PCCE 기출문제] 10번 / 데이터 분석 - sort() 메서드의 반환값?2023-12-04 21:04:571. [PCCE 기출문제] 10번 / 데이터 분석 https://school.programmers.co.kr/learn/courses/30/lessons/250121 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. sort() 메서드 반환값은 None! 분명히 다 풀었는데 결괏값이 None인 이해할 수 없는 상황이 펼쳐졌다. 원인은 아래의 코드와 같이 sort() 메서드를 리턴했기 때문이었다. def solution(data, ext, val_ext, sort_by): answer = [] column = ["code", "date", "maximum..
- [ CS/Linux ][Linux] 구름IDE를 이용한 리눅스 명령어 실습2023-10-03 00:04:521. 구름 IDE에서 간편한 무료 서버 이용 통합 개발 환경 SASS 서비스를 무료로 이용할 수 있는 구름 IDE를 이용해 리눅스 명령어 실습을 진행하였다. 이 실습은 인프런의 "2022 30분 요약 강좌 시즌 1 : HTML, CSS, Linux, Bootstrap, Python, JS, jQuery&Ajax"에 포함된 리눅스 강좌를 학습하며 진행한 것이다. 구름 IDE : https://ide.goorm.io/my/dashboard 2022 30분 요약 강좌 시즌 1 : https://www.inflearn.com/course/%EC%A0%9C%EC%A3%BC%EC%BD%94%EB%94%A9-%EC%9B%B9%EA%B0%9C%EB%B0%9C-30%EB%B6%84%EC%9A%94%EC%95%BD# 2...
728x90
반응형