분류 전체보기
![[Python] deque 사용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5j7x4%2FbtrCn6wNIsY%2FePTM0agNnJMlxMAzmkSTvk%2Fimg.png)
[Python] deque 사용하기
파이썬에서 큐(queue) 자료구조를 사용하는 방법은 list 사용하기 deque 사용하기 Queue 클래스 사용하기 등이 있다. 그중 deque에 대해 자세히 알아보려고 한다. deque deque는 collections 모듈에서 사용할 수 있다. deque는 “double-ended queue”의 약자이며, 스택과 큐를 일반화한 것으로, 양방향에서 원소를 추가하고 제거할 수 있는 자료구조이다. 양쪽 끝에서의 추가와 제거를 O(1) 성능으로 지원한다. deque는 내부적으로 linked list를 사용하고 있어 무작위로 접근할 경우 O(n) 시간 복잡도를 가진다. deque가 지원하는 메서드는 다음과 같다. append(x) 데크의 오른쪽에 x를 추가합니다. appendleft(x) 데크의 왼쪽에 x를..
![[프로그래머스] Level 2 - [1차] 캐시 (Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzE5bh%2FbtrCrOPbUTp%2FfupYfnbYeS2jnaJI6DjSAk%2Fimg.png)
[프로그래머스] Level 2 - [1차] 캐시 (Python)
https://programmers.co.kr/learn/courses/30/lessons/17680 deque의 최대 길이를 설정한다. 만약 maxlen 이상의 값을 추가하면 append() : 맨 왼쪽 원소가 삭제된 후, 맨 오른쪽에 원소가 추가된다. appendleft(): 맨 오른쪽 원소가 삭제된 후, 맨 왼쪽에 원소가 추가된다.
![[프로그래머스] Level 2 - [1차] 프렌즈4블록 (Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8VkEP%2FbtrCjFlBGZp%2FkSu7joVn8OHzI6o9mbyH40%2Fimg.png)
[프로그래머스] Level 2 - [1차] 프렌즈4블록 (Python)
https://programmers.co.kr/learn/courses/30/lessons/17679?language=python3 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr ✅ Solution 요소에 쉽게 접근하기 위해 board 를 2차원 배열로 만든다. board 전체 돌면서 2x2 로 같은 블록이 있는지 확인 후, delete 배열에 넣어준다. delete 배열안에서 겹치는 좌표가 있을 수 있으므로 집합으로 변환해준다. 2x2 요소를 모두 제거 후, 빈 공간이 있을 때 위에..
![[프로그래머스] Level 2 - 튜플 (Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbycuwt%2FbtrB6j90FL5%2FVbIrGIbm56IXxJv9uEbKnK%2Fimg.png)
[프로그래머스] Level 2 - 튜플 (Python)
https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr ✅ Solution replace를 이용해 중괄호를 대괄호로 바꾼 뒤, eval을 이용해 배열로 나타낸다. 배열을 길이로 정렬한다. 집합 내부에서 요소 순서가 뒤바뀔 수도 있으니까 길이가 1인 거부터 비교하면서 요소 찾기 {{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}} -> [[2], [2..
![[프로그래머스] Level 2 - 후보키 (Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZu91E%2FbtrB67ONucC%2F5TKN4h8hU2tF1SiRs7lF7k%2Fimg.png)
[프로그래머스] Level 2 - 후보키 (Python)
https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr ✅ Solution combinations를 이용해 가능한 후보키 조합을 모두 구한다. 해당 배열을 돌면서 유일성, 최소성을 확인한다. 유일성 : 후보키 조합에 따라 relation을 돌면서 값들을 tuple 형태로 저장한 뒤, set(tu..
![[프로그래머스] Level 2 - 메뉴 리뉴얼 (Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYtBJX%2FbtrB2jInoB5%2FNJI673oxYqKWO6hA2tktTK%2Fimg.png)
[프로그래머스] Level 2 - 메뉴 리뉴얼 (Python)
https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr ✅ Solution combinations를 이용해 order 당 만들 수 있는 메뉴 조합을 모두 구한다. 그 조합들을 defaultdict을 이용해 개수를 더해준다. 그리고 각 course 당 가장 큰 값의 메뉴 조합을 넣어준다. ✅ Code from itertools import combinations from collections import defaultd..
![[프로그래머스] Level 2 - 오픈채팅방 (Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA1he6%2FbtrBYwoFcRL%2FocL83wIpfVs8vafRfibdC1%2Fimg.png)
[프로그래머스] Level 2 - 오픈채팅방 (Python)
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr ✅ Solution 딕셔너리를 이용해 유저 정보를 저장한다. (key: 유저 아이디, value: 닉네임) Enter 일 때는 E + 유저 아이디를 answer에 넣어준다. Leave 일 때는 L + 유저 아이디를 answer에 넣어준다. Change 일 때는 딕셔너리에서 해당 유저 아이디의 값을 새로운 닉네임으로 바꿔준다. Answer 전체를 돌면서 딕셔너리에..
![[Swift] 조건문](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBXnMp%2FbtrsYIx9EyD%2FaOpRkVFHVvJi0IokeGohA0%2Fimg.png)
[Swift] 조건문
조건문이란? 주어진 조건에 따라 코드의 흐름을 제어하는 것이다. 스위프트의 조건문에는 if-else 문, switch 문, guard 가 있다. if 문 if 조건식1 { // 조건식1을 만족했을 때 실행되는 구문 } else if 조건식2{ // 조건식2를 만족했을 때 실행되는 구문 } else { // 아무 조건식도 만족하지 못했을 때 실행되는 구문 } Switch 문 패턴 기반으로 실행된다. 하나의 패턴이 일치하면 스위치 문은 종료된다. switch 비교대상 { case 패턴1: // 패턴1 일치할 때 실행되는 구문 case 패턴2: // 패턴2 일치할 때 실행되는 구문 case 패턴3: // 패턴3 일치할 때 실행되는 구문 default: // 아무 패턴도 일치하지 않을 때 실행되는 구문 } fa..