전체 글 38

그리디

🔎 그리디 탐욕법, 욕심쟁이 알고리즘 => 단순 무식하게, 탐욕적으로 문제를 푸는 알고리즘 탐욕적: '현재 상황에서 지금 당장 좋은 것만 고르는 방법' 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려 X ✅ 그리디 알고리즘의 정당성 대부분의 문제는 그리디 알고리즘을 이용했을 때 '최적의 해' 찾을 수 없을 가능성 높음 But, 탐욕적으로 문제에 접근했을 때 정확한 답을 찾을 수 있다는 보장 있다면 매우 효과적이고 직관적! 그리디 알고리즘으로 문제의 해법을 찾았을 때는 그 해법이 정당한지 검토해야 함 그리디 알고리즘 문제에서는 이처럼 문제 풀이를 위한 최소한의 아이디어를 떠올리고 이것이 정당한지 검토할 수 있어야 답을 도출할 수 있음 ..

[Python] 에러와 예외 (try, except, raise ..)

🔍 에러와 예외(try, except, raise..) 그동안 알고리즘 문제를 풀 때 인덱스를 벗어나는 등의 오류가 발생했을 때 범위를 제한하거나 다른 풀이를 모색해왔는데, 친구가 "try except문 쓰면 되는 거 아니야?"라고 말해준 뒤로, 정말 많이 애용하고 있다.(그동안 왜 생각을 못 했지..) 파스칼의 삼각형 문제(SWEA 2005번)를 풀면서 try-except를 사용하여 인덱스가 음수인 경우 예외 처리를 해주었는데, 파이썬에서는 인덱스가 음수여도 배열 끝을 기준으로 요소에 접근할 수 있다는 것이 문제였다. '인덱스가 음수인 경우 아예 의도적으로 예외를 발생시킬 순 없을까?' 하고 찾아본 결과 raise문을 사용하면 해결이 가능함을 알게 되었고, 이참에 정리를 해놓아야겠다 생각..

[Python] 정규 표현식 (Regular Expression, RE)

🔍 Regular Expression HOWTO 문자열 문제(백준의 9342)를 푸는 도중 감이 잡히지 않아 다른 사람들의 풀이를 참고하였는데, 정규 표현식을 사용하면 쉽게 풀 수 있는 문제였다. 이론은 대학교 수업 시간에 배운 바 있지만, 파이썬에서는 어떻게 사용하는지 몰랐기에 이참에 정리해 보고자 한다. 공식 문서와 점프 투 파이썬 등을 참고하여 작성하였다. 모든 내용을 다룬 것은 아니기에, 공식 문서 등을 참고하면 좋을 것 같다. 📃 정규 표현식(Regular Expressions) 정규 표현식(Regular Expressions)은 간단히 정규식, RE, regexes 또는 regex 패턴 등으로 줄여 부름 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어임 쉽게 ..

[Python] 정렬 (sort & sorted, reverse, key)

🔍 Sorting HOW TO 단어 정렬 문제(백준의 1181)를 풀다가 확실히 정렬에 대해 정리할 필요가 있겠다는 생각이 들어 작성해 본다. 공식 문서를 참고하였고, sort와 sorted 그리고 reverse와 key에 대해서 정리해 보았다. 추가로 파이썬에서 액세스 함수를 더 쉽고 빠르게 만들 수 있도록 제공하는 operator 모듈 함수는 정리하지 않았지만, 알아두면 꽤 쏠쏠할 것 같다. 참고 🗃️ sort() VS sorted() 파이썬에는 리스트를 정렬하는 내장 함수 두 가지가 있음 바로 sort()와 sorted()이며, 둘은 크게 두 가지의 차이점이 있음 1️⃣ 첫 번째 차이점 ◻ sort() 함수는 리스트를 제자리에서(in-place) 수정함 ◻ sorted() 함수는 새로운 정렬된 리스..

[JS] 자바스크립트의 데이터 타입

🔍 자바스크립트의 데이터 타입 자바스크립트는 상대적으로 데이터 타입이 유연한 언어 => 데이터 타입이 상황에 따라 변할 수 있음! ex 1) 숫자와 문자열 간의 유연한 연산 ◽ 1(숫자) + "2"(문자열) => "1"(문자열) + "2"(문자열) => "12"(문자열) ◽ 3(숫자) * "4"(문자열) => 3(숫자) * 4(숫자) => 12(숫자) ex 2) 변수에 다양한 타입의 값으로 재할당 가능 따라서 데이터 타입을 명확하게 이해하고 있어야 함! Why? 💥예상치 못한 결과로 오류가 발생할 수 있으므로 ex) ☁ 8가지의 데이터 타입 ◻ 7가지의 기본형 ◽ Number ◽ String ◽ Boolean ◽ null ◽ undefined ◽ Symbol (ES 2015 추가, 유일한 값을 만들 때 ..

Front-end/JS 2022.10.04

후기

22.09.18 1차 작성 22.09.25 2차 작성 22.10.03 수정 📽 시연 영상 "수어 인식" 기능을 테스트 해보는 AI 담당 팀원의 시연 영상 🔥 2022년 공개SW 개발자대회 대학 동기가 같이 참여해보지 않겠냐고 제안하여 2022년 공개SW 개발자대회에 참가하게 되었다. 주최: 과학기술정보통신부, 주관: 정보통신산업진흥원 대략적인 일정: 8월 3일까지 참가 접수, 9월 15일까지 출품작 접수, 9월 21일과 22일에 1차 평가 참가자격: 학생 부문과 일반 부문 2가지, 참가부문: 자유과제, 지정과제, 향상과제 3가지 🚀 프로젝트 시작 7월 26일 총 4명이 모여 시작하게 되었다. 팀원은 전부 대학교 동기들이며 AI 1명, 안드로이드 1명, 백엔드 1명, 프론트엔드 1명(나)으로 구성되었다. ..

Project/I'm Hear 2022.10.03

[트러블슈팅, JS] - ⭐스크롤을 항상 아래로⭐

22.09.07 기록 에러는 아니지만 새로 알게 된 내용이라 정리 ⭐스크롤을 항상 하단으로 보내기⭐ (새로운 채팅 내용이 있으면 그 내용을 보여주기 위함)결론: scrollTop, scrollHeight를 활용 📽 결과 화면 ✅ 해결 과정 채팅창에 스크롤 기능이 추가되었고, 요소들도 안에 잘 보이지만.. 입력을 하면 밑에 내용이 추가되는데, 내가 스크롤 바를 내려야만 볼 수 있다. 스크롤바를 자동으로 항상 아래에 위치 시키고 싶었다. 그렇게 하기 위해서는 CSS 박스 모델의 요소들을 알 필요가 있어 보였다. CSS 박스 모델에는 스크롤과 관련된 여러 요소들이 있으며, 자세한 것은 아래 사진들을 참고하자 출처는 stack overflow 자료마다 scrollHeight와 offsetHeight 등을 저마다..

Project/I'm Hear 2022.09.12

[트러블슈팅, CSS] - 내용이 요소의 크기를 벗어나면 스크롤 기능

22.09.07 기록 에러는 아니지만 새로 알게 된 내용이라 정리 채팅창 안에 내용이 요소의 크기를 벗어나면 스크롤 기능 추가하기 결론: "overflow: auto" ✅ 해결 과정 채팅창에 내용들이 많아지니 감싸고 있던 요소를 벗어나버렸다. overflow 속성은 내용이 요소의 크기를 벗어났을 때 처리하는 방법을 지정해주는 속성이다. visible, hidden, scroll, auto 등 여러 값을 할당해줄 수 있다. 자세한건 여기!! (아래와 같이 값을 선택하여 실제 화면에 어떻게 보이는지 실습해볼 수 있다.) 그 중 auto를 사용하면 내용이 요소의 크기를 벗어날 때만 스크롤바를 제공해준다! 추가로 줄바꿈 속성(white-space, word-wrap)도 알아두면 좋을 것 같다. white-spa..

Project/I'm Hear 2022.09.11