문제는 다음과 같다. 여러 줄에 걸쳐 서로 연결된 노드의 관계들을 입력받는다고 하자. # 입력 5 # 서로 연결된 관계의 수 1 2 2 5 5 1 3 4 4 6 다음과 같이 입력받았을 때, 파이썬의 딕셔너리와 리스트를 이용해 그래프를 표현할 것이다. n = int(input()) dic = {} for i in range(n): a, b = map(int, input().split()) dic[a] = dic.get(a, []) + [b] dic[b] = dic.get(b, []) + [a] print(dic) 여기서 딕셔너리의 get함수를 모른다면 여기를 참고하자😉 암튼, 저렇게 딕셔너리를 채우고 출력해보면 {1: [2, 5], 2: [1, 5], 5: [2, 1], 3: [4], 4: [3, 6], ..
GET 함수 딕셔너리의 get(x) 함수는 x라는 key에 대응되는 value값을 돌려준다. 만약 get(x, 'Baaaaaaam') 함수에 두번째 인자를 넣어주면 x라는 key가 딕셔너리에 없는 경우, 'Baaaaaaam'을 디폴트 값을 돌려준다. 'Baaaaaaam'이라는 key값이 딕셔너리에 없는데 dic['Baaaaaaam']을 사용하면 key 오류를 발생시키는데 get함수를 사용하면 key값이 없어도 오류를 발생시키지 않고 None을 반환해준다. 즉, 딕셔너리 안에 찾으려는 Key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때에는 get(x, '디폴트 값')을 사용하면 된다!! Example genres = ["classic", "pop", "classic", "clas..
순열(Permutation) 순열은 n개의 원소를 사용해 순서를 정해 r개의 배열로 나타내는 것이다! 순열은 순서가 있기 때문에 원소의 종류가 같아도 순서가 다르면 다른 배열이 된다. Python Permutations Python의 라이브러리를 활용해 순열을 구하는 방법이다. from itertools import permutations a = [1,2,3] permute = permutations(a,2) print(list(permute)) >> 결과 [(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)] 조합(Combination) 조합은 n개의 원소를 사용해 순서의 관계없이 r개의 배열로 나타내는 것이다. 조합은 순서가 없기 때문에 원소의 종류가 같으면 같은 배열이 된다! Pytho..
우선순위큐(PriorityQueue) | 데이터를 추가하는 것은 어떤 순서로 해도 노상관 | 제거될 때는 가장 작은 값을 제거 Class Import from queue import PriorityQueue 우선순위큐 생성 qre = PriorityQueue() qre = PriorityQueue(maxsize = 8) # 최대 크기를 8로 잡음 우선순위큐에 원소 추가/삭제 # 추가 que.put(2) que.put((2, "apple")) # 삭제 que.get() 우선순위큐 원소들 출력 # 그냥 프린트하면 >>> print(que) # 결과가 이렇게 나옴 >>> print(que.get()) (2, 'apple') 우선순위큐는 인덱스로 접근도 불가능하고 iterable하지 않기 때문에 for문에서 i..
1차원 배열 입력받기 map함수를 이용하면 for문을 쓰지 않고 한줄에 여러개의 정수를 입력받을 수 있다. 입력값을 공백을 기준으로 나눈다. num_list = list(map(int, input().split())) >> 결과 >> 입력 1 2 3 4 5 >> 출력 [1, 2, 3, 4, 5] 한줄에 정수형 변수 여러개 입력받기 이 경우에는 받을 변수의 개수를 지정할 수 있다. 만약 입력받은 개수가 변수 개수와 다르면 에러 발생-- a, b, c, d = map(int, input().split()) >> 결과 # 입력 1, 2, 3, 4 # 출력 >> print(a) 1 >> print(b) 2 한줄에 문자열 변수 여러개 입력받기 a, b = input().split() >> 결과 # 입력 123 3..
STL 이란? 표준 C++ 라이브러리 (Standard Template Library) 프로그램에 필요한 자료구조와 알고리즘을 템플릿으로 제공하는 라이브러리 STL 구성요소 Container 객체를 저장하는 객체, 자료구조 라고도 함 Sequence Container : array, vector, list, deque Associative Container : set, multiset, map, multimap Iterator 포인터와 비슷한 개념으로 컨테이너의 원소를 가리킴 가리키는 원소에 접근해 다음 원소를 가리키는 기능, 순회 Algorithm 정렬, 삭제, 검색, 연산 등을 해결하는 일반화된 방법을 제공하는 함수 템플릿 Container Adaptor 구성요소의 인터페이스를 변경해 새로운 인터페이..
연관 컨테이너 key값은 중복이 허용되지 않음!! 원소는 자동정렬(default는 오름차순) Set 함수 s.begin() s.end() s.rbegin() s.rend() 얘네는 역으로 출력하고 싶을때 사용 s.clear() s.empth() s.size() s.count(k) 원소 k의 개수 반환 무조건 0 아니면 1 -> multiset에서는 유용하게 쓰임 s.insert(k) 자동으로 정렬된 위치에 원소 k를 삽입 s.insert(iter, k) iter가 가리키는 위치에 k 삽입 s.erase(iter) iter가 가리키는 위치의 원소 삭제 s.erase(start, end) [start, end) 구간의 원소 삭제 s.find(k) 원소 k가 가리키는 iter 반환 k가 없으면 s.end()의..
- Total
- Today
- Yesterday
- combination
- 순열
- Permutation
- 문자열
- 재귀
- 스택
- 파이썬
- SW Expert
- Python
- programmers
- hash
- BOJ
- C++
- 완전탐색
- 정렬
- 백준
- 문자열처리
- 우선순위큐
- 코딩테스트
- 구현
- left join
- SWExpert
- 2019 Kakao Blind Recruitment
- 프로그래머스
- 괄호
- 해시
- 힙
- 딕셔너리
- dictionary
- 2020 KAKAO BLIND RECRUITMENT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |