일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 웹페이지
- NLP
- 2164 카드2
- geopandas
- to shp
- 셀레니움
- 코랩 런타임
- colab runtime
- python buildpacks
- convert to shp
- 알고리즘
- Chat-GPT
- geoDataFrame
- 혁신성장부문
- 해시태그
- Crawling
- Selenium
- Merge Repositories
- 백준
- 인스타그램
- Python
- string to list
- plotly dash
- 플라스크
- 크롤링
- 괄호 문제
- clustering
- 파이썬
- flask
- kmeans
- Today
- Total
목록파이썬 (22)
코딩코딩코딩
얼음 틀에 음료수를 넣고 얼렸을 때 나오는 얼음 덩어리는 몇 개인지 세는 문제 - 깊이우선탐색 (Depth-First Search; DFS) (아래의 표가 얼음 틀이라고 가정) 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0끼리 맞닿아 있는 곳이 하나의 얼음 덩어리, 1 부분에는 음료가 들어가지 않아 얼음이 얼지 않음 입력: 행, 열 순으로 입력이 주어지고, 이후 각 행에 열 개수에 맞는 0과 1의 조합이 주어짐 ex) 4, 5 00110 00011 11111 00000 출력: 얼음 개수 출력 3 해결 방법: - 2차원 배열 형태의 그래프로 간주하여 상하좌우로 탐색하면서 0인 부분에서 재귀함수로 다시 탐색 - 1이 나오면 종료하고 전체 함수가 종료되면 True를 반환하고 이후에..
십의 자리, 일의 자리를 나누어서 문제 접근 파이썬 나누기 연산자 // : 몫을 구함 %: 나머지 구함 / : 나눈 값을 구함 (소수점까지) 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..
알고리즘 문제를 풀다보면 입력받은 문자열을 모두 분해해서 리스트로 저장해야 하는 경우가 종종 있다. 이 경우 공백 문자나 구분자가 없으면 split을 사용하기 어렵기 때문에 문자열을 바로 배열로 변환하는 방법에 대해 정리해보았다. 문자열: target = 'HelloWorld" 문자배열: alphabet_list = [] 1. for loop for alphabet in target: alphabet_list.append(alphabet) print(alphabet_list) >>> ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'] 2. list comprehension alphabet_list = [alphabet for alphabet in target] pr..
파이썬에서 튜플을 사용해서 정렬해야 할 때가 있다. 백준 단어정렬 문제를 딕셔너리로 풀어보려다가 너무 복잡해져서 힌트를 좀 찾아보니 다들 튜플로 풀었길래 튜플 정렬에 관한 내용을 정리해보려고 한다. 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])) # 단어 길이, 단어 순으로 오름차순 정..
리스트의 첫 원소를 지우고 그 다음 원소를 맨 뒤로 보내는 간단한 문제였다. 처음에는 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..