일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 딥러닝
- 코딩 테스트
- 프로그래머스
- 코딩
- 동적프로그래밍
- 순열
- 리눅스
- 코딩테스트
- nlp
- 동적 프로그래밍
- 그래프
- DFS
- 네트워크
- CSS
- 백준
- 운영체제
- 구글 킥스타트
- 알고리즘
- dp
- kick start
- AI
- OS
- 브루트포스
- 프로그래밍
- 킥스타트
- BFS
- PYTHON
- 파이썬
- google coding competition
- linux
- Today
- Total
목록set (5)
오뚝이개발자
문제 https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 나의 풀이 처음엔 2차원 배열을 사용해 문제를 풀려고 했지만 생각해보면 각 상..
list와 tuple은 모두 순차자료형이다. A = [1, 2, 3]# list B = (1, 2, 3)# tuple 하지만 차이점은 리스트의 경우 원소를 바꿀 수 있으나(가변적), 튜플의 경우 원소의 값을 변경할 수 없다(불변적)는 점이다. 이 같은 차이가 왜 중요한 이유가 있다. 만약 아래와 같이 "리스트"를 key로 하는 딕셔너리를 만들고 싶다고 해보자. A = [1,2,3] B = [4,5,6] dictionary = {} dictionary[A] = 1 dictionary[B] = 2 안타깝지만, 위의 코드는 제대로 실행되지 않는다. 아마 실행해보면 TypeError: unhashable type: 'list'라는 에러 문구가 뜰 것이다. 이유는 파이썬에서 딕셔너리의 key값은 hash가 가능토..
파이썬에는 in 연산자가 있다. 보통 리스트, 튜플, 집합, 딕셔너리 같이 연속적인 자료구조에 속한 멤버를 확인하거나 순회할 때 사용한다. 그렇다면 in 연산자의 시간복잡도는 어떻게 될까? List l = [1, 2, 3, 4, 5] # 멤버 확인 if 1 in l : print("1 is in l") # 순회 for i in l : print(i) Tuple t = (1, 2, 3, 4, 5) # 멤버 확인 if 1 in t : print("1 is in t") # 순회 for i in t : print(i) Set s = {1, 2, 3, 4, 5} # 멤버 확인 if 1 in s : print("1 is in s") # 순회 for i in s : print(i) Dictionary d = {1: ..
파이썬엔 set이라는 자료형이 있다. set은 영어로 "집합"을 뜻하는데 수학적으로도 알 수 있듯이 특징은 크게 다음의 두 가지이다. 순서가 없다. 중복을 허락하지 않는다. 1번 특징) list의 경우 for문을 사용해 원소에 접근하면 모든 원소들을 순차적으로 탐색할 수 있다. 하지만 set은 다르다. 동일하게 for문을 사용하여 원소에 접근하면 어떤 것이 먼저 나올지 모른다. 2번 특징) 집합은 중복원소를 허용하지 않는다. 따라서 set에 중복된 원소를 삽입하면 자동으로 중복제거가 된다. 즉 모든 값들은 unique하다. set의 선언 list나 dict는 다음과 같이 선언한다. l = []# list 자료형 d = {}# dict 자료형 set도 dict와 똑같은 {}를 사용한다. 따라서 중괄호만으로..
문제 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 생각의 흐름 문제가 꽤나 직관적이다. 그냥 시키는 대로 분기를 시켜 짜면 된다. 출제의도는 아마 set을 사용하는 방법을 익히도록 하려던 것 같다. 깨달은 점 set에는 list와는 다른 점들이 몇 가지 존재한다. 코드 상에서 사용된 부분들에 대해서만 소개하고자 한다. set에는 중복이 없다. 즉, temp = [1,2,3,3]이라는 list를 temp = set(temp)를 하고나면 [1,2,3]이 된다. 하지만 순서도 없다..