일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준10757
- 개발자
- 자료구조
- 백준25305
- 백준1284
- 더오름
- 백준
- F-string
- 파이썬
- 이터레이터
- 백준 10814
- 제주코딩베이스캠프
- 코테준비
- 백준2751
- Python
- 백준1247
- 백준1181
- 코테
- 코딩테스트
- 큐
- 컴프리헨션
- 백준2587
- javascript
- 위니브
- 백준2525
- 왈러스 연산자
- 제주ICT
- collections
- 백준1312
- 백준10039
- Today
- Total
목록분류 전체보기 (19)
hyei-devlog

Python의 collections 모듈은 다양한 형태의 컨테이너를 제공하여 데이터 조작을 쉽고 효율적으로 할 수 있다. 1. deque deque는 양쪽 끝에서 요소를 추가하거나 제거할 수 있는 스레드-안전한 양방향 큐이다.from collections import dequed = deque()d.append('a') # 오른쪽 끝에 추가d.appendleft('b') # 왼쪽 끝에 추가d.pop() # 오른쪽 끝 요소 제거d.popleft() # 왼쪽 끝 요소 제거d = deque()d = ['a', 'b', 'c']d.rotate(1) # ['c', 'a', 'b'] 한번 더 쓰면 b가 앞에온다. 알고리즘에서 자주 사용된다. 2. Counter Counter는 요소의 개수를 세는데 사용되는..

💡 이터레이터(Iterator)이터레이터란, 값을 차례대로 꺼낼 수 있는 객체를 의미한다. 이는 파이썬의 리스트, 튜플, 문자열 같은 컬렉션 타입들을 의미한다. 이러한 이터러블 객체들은 iter() 함수를 사용해 이터레이터로 변환될 수 있다. 이터레이터 객체는 next() 함수를 사용해 값을 순차적으로 꺼낼 수 있다.my_list = [1, 2, 3, 4]my_iter = iter(my_list) # my_list에 __iter__가 호출된다.print(next(my_iter)) # 출력: 1 # my_list에 __next__가 호출된다.print(next(my_iter)) # 출력: 2 # my_list에 __next__가 호출된다. 이터레이터가 더 이상 꺼낼 요소가 없을 때 next()를 호출..

💡 컴프리헨션 (comprehension)Python의 컴프리헨션(comprehension) 문법은 기존 시퀀스(sequence), 이터러블(iterable), 또는 다른 표현식들로부터 새로운 시퀀스를 생성하는 간결하고 가독성 있는 방법이다. Python에서는 몇 가지 타입의 컴프리헨션을 사용할 수 있다:리스트 컴프리헨션, 딕셔너리 컴프리헨션, 세트 컴프리헨션, 제너레이터 컴프리헨션 🧐 컴프리헨션 문법은 2중 for문 등을 사용하지 않도록 권장한다! google convention에도 동일하게 권고하고 있다. 만약 2중으로 써야 할 경우 문법을 풀어서 쓰길 권장한다. 1. 리스트 컴프리헨션: 리스트 컴프리헨션은 가장 일반적으로 사용되며, 대괄호([]) 사이에 표현식과 for문을 넣어 리스트를 생성한..

💡 왈러스 연산자1. 왈러스 연산자란?Python 3.8에서 도입된 왈러스 연산자( := )는 할당 표현식(assignment expressions)를 사용하게 해주는 연산자이다.이 연산자는 "이름을 표현식의 결과에 연결"하거나 "값을 이름에 할당하면서 그 값을 평가"한다. 이 기능은 표현식을 계산하면서 동시에 그 결과를 변수에 할당할 수 있게 해준다.2. 왈러스 연산자의 사용법2.1 기본 사용법# 기본적인 왈러스 연산자의 사용x = (n := 10) * 2print(x) # 출력: 20print(n) # 출력: 10위의 코드에서, (n := 10)은 10을 n에 할당하고, 그 값을 반환한다. 그 결과는 2와 곱해져 x에 할당되었다. 2.1 기본 사용법# 왈러스 연산자가 없을 때의 코드import ..

📍 문제https://www.acmicpc.net/problem/1181📍 전체 코드N = int(input())num_list = []for i in range(N): num_list.append(input())sorted_list = sorted(set(num_list), key=lambda x: (len(x), x))for i in range(len(sorted_list)): print(sorted_list[i]) 📍 문제 풀이문제에서 요구한 조건 3가지 알파벳 소문자로 이루어진 N개의 문자열을 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 정렬한다.3. 중복된 단어는 하나만 남기고 제거한다. sorted_list = sorted(set(num_list), key=lam..

📍 문제https://www.acmicpc.net/problem/1284 📍 전체 코드while(1): user_input = int(input()) if user_input == 0: break result = 0 num_list = list(map(int, str(user_input))) for n in num_list: if n == 0: result += 4 elif n == 1: result += 2 else: result += 3 result += (len(num_list) - 1) + 2 print(result) 📍 문제 풀이문제에서 요..

📍 문제https://www.acmicpc.net/problem/10039 📍 전체 코드print(int(sum(max(40, int(input())) for _ in range(5)) / 5)) 📍 문제 풀이max(40, int(input())) for _ in range(5) 5개의 정수를 입력받는다. 이때, 입력값이 40보다 작으면 40을 반환하고, 크거나 같으면 입력값을 그대로 반환한다. 문제에서 40점 미만인 학생들은 보충 수업을 통해 항상 40점을 받게 된다.sum() 입력받은 5개의 정수들을 더하고, 5로 나누어 평균을 계산한다. int형으로 변환하여 소수점을 버린다. 📍 문제 해결을 위한 고민이 문제는 for문 안에서 if문을 사용하면 아주 쉽게 풀 수 있지만, 코드를 최대한 압..

📍 문제https://www.acmicpc.net/problem/1247 📍 전체 코드import sysinput = sys.stdin.readlinefor _ in range(3): N = int(input()) flag = sum(int(input()) for _ in range(N)) if flag == 0: print(0) elif flag 📍 문제 풀이sum(int(input()) for _ in range(N)) 한 번에 여러 입력을 받아서 합산flag == 0일 때는 0을 출력하고, flag 0일 때는 +를 출력 📍 문제 해결을 위한 고민import sysinput = sys.stdin.readline 추가해주지 않았더니 채점 시간이 너무 오래걸렸..

📍 문제https://www.acmicpc.net/problem/10757 📍 전체 코드print(sum(map(int, input().split()))) 📍 문제 풀이input()은 사용자가 입력한 값을 문자열로 받는다.split() 메서드는 문자열을 구분자 기준으로 나눠 리스트로 만든다. (기본 구분자는 공백)예를 들어, "1 2 3 4 5"는 split()을 사용하면 ['1', '2', '3', '4', '5']라는 문자열 리스트로 변환된다.map() 함수는 반복 가능한 객체(리스트, 튜플 등)의 각 요소에 대해 주어진 함수를 적용한다. 위의 코드에서 map()은 각 문자열 요소를 int로 변환하여 정수리스트로 만든다.sum() 함수는 전달된 반복 가능한 객체(리스트, 튜플 등)의 모든 요소를..