![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP6DcM%2FbtrzBIYj1DK%2FADixICUYQK4RBAIqmgsCD1%2Fimg.jpg)
[파이썬] 프로그래머스 - 프린터
2022. 4. 17. 00:39
Algorithm
📌 Deque A Double-ended Queue Double-ended는 양 끝에 elements를 추가/삭제를 지원한다는 의미 한다. Deque 주요 함수 append() : deque의 right end에 요소 추가 appendleft() : deque의 lef end에 요소 추가 pop() : deque의 right end의 요소 삭제 popleft() : deque의 left end의 요소 삭제 뒤에서 추가/삭제는 덱과 리스트는 속도 차이가 없지만, 첫 번째 원소를 추가 삭제한다면 극명한 속도 차이가 발생한다. 첫번째 원소를 삭제하면 그림처럼 삭제 후 모든 원소를 앞으로 이동시키기 때문에 시간 복잡도가 O(n)이기 때문이다. 📌 풀이 핵심은 어떻게 location을 내가 인쇄를 요청한 원소에 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBCltt%2FbtrzyWCNVOv%2FRJISpQC5HyWQZHqouqru00%2Fimg.jpg)
안드로이드 [Kotlin] - TextInputLayout 및 정규식을 이용하여 회원가입 UI 구현
2022. 4. 16. 19:04
Android
해당 내용은 코드스쿼드 2022 안드로이드 미션을 수행하면서 공부한 내용을 정리한 글입니다. 모바일 앱을 이용하면 회원가입을 할 때 위와 같은 화면을 많이 접했을 것이다. 사용자 입장에서 당연하게만 사용했던 해당 UI를 오늘 직접 구현해 보려 한다. 📌 요구사항 분석 아이디 5~20자의 영문 or 숫자 주어진 Hint 적용 비밀번호 *****의 형태로 표시, 8자 이상 16자 이하 영문 대문자를 최소 1자 이상 포함 숫자를 최소 1자 이상 포함 특수문자를 최소 1자 이상 포함 토글 아이콘 클릭 시 입력된 비밀번호 노출 주어진 Hint 적용 비밀번호 재확인 위 비밀번호에 쓰인 값과 동일 이름 필수입력값 위의 경우 중 하나라도 만족하지 않을 경우 TextInputLayout에 Error 문구를 띄우며 다음..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrODat%2FbtrzpbgtCnv%2F1gbV1kITOuzvlbeRR4KWxK%2Fimg.jpg)
[파이썬] 프로그래머스 - 기능개발
2022. 4. 14. 23:47
Algorithm
📌 풀이 1 우선 remail_days라는 리스트를 만들어 준다. 이 리스트에는 progresses 에서 speeds를 나누어 준 값을 올림 한 값 즉 남은 작업일 수를 저장해준다. 이때 for 문을 이용하여도 되지만 간단히 쓰기 위해 labda 함수를 이용한다. 또한 올림 처리는 math 라이브러리의 ceil 함수를 이용했다. ramain_days = [] for i, j in zip(progresses, speeds): remain_days.append(math.ceil((100 - i) / j)) -> 람다식으로 전환 remain_days = list(map(lambda x: (math.ceil((100 - progresses[x]) / speeds[x])), range(len(progresses)..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOLupS%2FbtryJDD7x30%2Fnbx2EgPnTgI9S1p2JUDkwK%2Fimg.png)
OOP - 재사용: 상속보다 조립
2022. 4. 7. 23:11
OOP
🙋♂️ 들어가면서 객체 지향이 주는 장점은 구현 변경의 유연함이다. 유연함을 얻을 수 있도록 해주는 방법에는 추상화가 있는데 그 전에 추상화를 가능하게 해주는 다형성에 대해 살펴보자. 📌 상속 상속(Inheritance) 은 한 타입을 그대로 사용하면서 구현을 추가할 수 있도록 해주는 방법을 제공한다. 상속받은 하위 클래스는 필요에 따라 상위 클래스에 정의된 메서드를 새롭게 구현할 수 있다. 이를 재정의(overriding)라 한다. 메서드를 재정의하면, 해당 메서드를 실행할 때 상위 타입의 메서드가 아닌 하위 타입에서 재정의한 메서드가 실행된다. 상속의 장점 기존에 작성된 클래스를 재활용할 수 있다. 자식 클래스 설계 시 중복되는 멤버를 미리 부모 클래스에 작성해 놓으면, 자식 클래스에서는 해당 멤버..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkBxRo%2FbtryJje8dF7%2FrlhceOD2bh6v0c8PfUr0G1%2Fimg.jpg)
[파이썬] 프로그래머스 - 위장
2022. 4. 7. 22:33
Algorithm
📌 풀이 약간의 수학적 사고를 해야 풀리는 문제이다. 우선 나는 딕셔너리의 성격과 수학의 경우의 수를 조합하여 문제를 풀었다. 우선 옷의 종류에 따라 몇 가지가 있는지 파악한다. answer = {} for cloth in clothes: if cloth[1] in answer: answer[cloth[1]] += 1 else: answer[cloth[1]] = 1 ... colthes = [["yellowhat", "headgear"], ["bluesunglasses", "eyewear"], ["green_turban", "headgear"]] 라면 answer = {'headgear': 2, 'eyewear': 1} 이제 각 옷의 종류의 개수를 알았으니 경우의 수를 이용하여 푼다. 이전에 입을 수 있..