일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2164 카드2
- 인스타그램
- Merge Repositories
- 플라스크
- kmeans
- 알고리즘
- string to list
- flask
- 셀레니움
- colab runtime
- 크롤링
- Selenium
- Crawling
- 웹페이지
- NLP
- 파이썬
- geoDataFrame
- python buildpacks
- 해시태그
- clustering
- Python
- geopandas
- 혁신성장부문
- convert to shp
- plotly dash
- 코랩 런타임
- Chat-GPT
- to shp
- 괄호 문제
- 백준
- Today
- Total
목록알고리즘 (5)
코딩코딩코딩
십의 자리, 일의 자리를 나누어서 문제 접근 파이썬 나누기 연산자 // : 몫을 구함 %: 나머지 구함 / : 나눈 값을 구함 (소수점까지) num = int(input()) first_num = num cnt = 0 while True: if num == 0: print(1) break tenth = num // 10 # 십의 자리 oneth = num % 10 # 일의 자리 if num < 10: tenth = 0 oneth = num sum_num = tenth + oneth # 십의 자리 + 일의 자리 sum_oneth = sum_num % 10 new_num = (oneth * 10) + sum_oneth cnt += 1 if new_num == first_num: print(cnt) break..
파이썬에서 튜플을 사용해서 정렬해야 할 때가 있다. 백준 단어정렬 문제를 딕셔너리로 풀어보려다가 너무 복잡해져서 힌트를 좀 찾아보니 다들 튜플로 풀었길래 튜플 정렬에 관한 내용을 정리해보려고 한다. hansuho113.tistory.com/27 백준(BAEKJOON) 1181 단어정렬 - 파이썬(python) 처음에는 딕셔너리를 사용해서 {"단어":단어길이} 식으로 key, value 로 접근해서 풀려고 했는데 한 조건이 같을 때 다음 조건으로 정렬하는 부분을 구현하는 데 어려움이 있어서 튜플을 이용해서 hansuho113.tistory.com tuple_list = [ (3, 4), (1, 2), (2, 5) ] 위처럼 리스트의 원소가 튜플로 이루어져 있는 경우 정렬을 하기 위해서는 리스트의 sort(..
처음에는 딕셔너리를 사용해서 {"단어":단어길이} 식으로 key, value 로 접근해서 풀려고 했는데 한 조건이 같을 때 다음 조건으로 정렬하는 부분을 구현하는 데 어려움이 있어서 튜플을 이용해서 풀었다. import sys n = int(sys.stdin.readline()) # 문자를 입력받고 중복된 문자를 제거 한 후 리스트에 삽입 sentence = list(set([sys.stdin.readline().strip() for i in range(n)])) words = [(len(word), word) for word in sentence] # 튜플이 원소인 리스트 생성 words.sort(key=lambda word: (word[0], word[1])) # 단어 길이, 단어 순으로 오름차순 정..
sys.stdin.readline() 사용법 큐 관련 문제들은 시간제한을 굉장히 타이트하게 준다. 가장 기본적인 list 풀이도 deque와 굉장히 큰 성능차이를 보이는데, 이러한 문제에서는 입력값을 받는 것에도 신경써야 한다. 입력값을 반복적으로 여러 줄 입력받아야 한다면 input()이 아니라 sys.stdin.readline()을 사용해야 한다. * 다만 readline()은 줄 별로 입력받기 때문에 개행문자가 같이 받아지므로 주의해야 한다. ( int() 사용 ) import sys 1. 한 개의 정수를 한 줄에 입력받을 때 N = int(sys.stdin.readline()) 2. 여러 개의 정수를 한 줄에 입력받을 때 N_list = list(map(int, sys.stdin.readline(..
리스트의 첫 원소를 지우고 그 다음 원소를 맨 뒤로 보내는 간단한 문제였다. 처음에는 list의 pop과 append를 사용했었는데 시간초과가 떠서 다시 찾아보니 deque를 사용해서 풀어야 하는 문제였다. 처음 풀었던 것처럼 list.pop(0)을 하게되면 뒤에 남은 원소들을 모두 앞으로 땡겨오기 때문에 시간복잡도가 O(N)이 되는 반면에 deque의 leftpop을 사용하면 제거하고 뒤 원소들의 메모리를 건드리지 않기 때문에 시간복잡도가 O(1)이 되어 속도면에서 압도적이다. N의 크기가 커질수록 deque의 성능이 우수해지며, 특히 left관련 함수의 경우에 차이가 두드러진다. num = int(input()) from collections import deque cards = deque(range..