파이썬

Algorithm/Python

[파이썬/백준 20055] 컨베이어 벨트 위의 로봇

링크 www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 문제 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부터 2N까지의 번호가 매겨져 있다. 벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고, 2N번 칸은 1번 칸의 위치로 이동한다. i번 칸의 내..

Algorithm/Python

[파이썬/프로그래머스]큰 수 만들기

큰 수 만들기 링크 programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 코드 def solution(..

Algorithm/Python

[파이썬/프로그래머스]괄호 변환

괄호 변환 문제 링크 programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제 설명 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이..

Crawling

[크롤링/13]Scrapy 오류 처리 설정

RETRY_ENABLED(기본값 True) 타임아웃 또는 HTTP 상태 코드 500 등이 발생했을 때d 자동으로 재시도할지 여부 이 설정과 관계 없이 Request.meta 속성으로 dont_rety 키 값을 True로 지정하면 해당 요청은 재시도하지 않는다. yield scrapy.Requests(url, meta={'dont_retry': True}) 잘못된 응답 또는 데이터 손실 오류는 서버 구성 오류에서 네트워크 오류, 데이터 손상에 이르기까지 여러 상황에서 발생할 수 있다. 깨진 응답이 부분적이거나 불완전한 내용을 포함 할 수 있다는 점을 고려하여 깨진 응답을 처리하는 것이 합리적 일지 결정하는 것은 사용자의 몫이다. RETRY_TIMES(기본값 2) 재시도 최대 횟수 재시도 횟수가 2라는건 처..

Crawling

[크롤링/10]Scrapy로 크롤링 대상 사이트에 피해주지 않는 설정하기

크롤러를 만들때 중요한건 크롤링 대상 사이트에 피해를 주지않는 것이다. 크롤러는 크롤링 할 사이트가 있어야만 존재할 수 있다. 그러므로 크롤링 대상에 피해를 주지 않기위한 Scrapy 설정들(클릭하면 공식 문서로 이동) Settings — Scrapy 2.4.1 documentation Here’s a list of all available Scrapy settings, in alphabetical order, along with their default values and the scope where they apply. The scope, where available, shows where the setting is being used, if it’s tied to any particular comp..

Algorithm/Python

[파이썬/백준 20058] 마법사 상어와 파이어스톰/런타임에러(RecursionError) 원인과 해결방법

www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net 1. 입력 n, q = map(int, input().split()) n = 2**n ice_rink = [list(map(int, input().split())) for _ in range(n)] level = list(map(int, input().split())) 2. 구현 (1) 가장 큰 얼음 덩어리가 차지하는 칸의 개수 import sys sys.setrecursionlimit(10..

Algorithm/Python

[파이썬/백준 20057] 마법사 상어와 토네이도

20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 시간 줄이려고 global안쓰고 딕셔너리 써봤는데 메모리가 줄어들고 시간은 늘어났다 ✨ 접근 위와 같은 그림을 그리며 패턴을 파악했다 ✨ 코드 딕셔너리 쓰기 def move(cnt, dx, dy, direction): for _ in range(cnt + 1): sx, sy = init['sx'] + dx, init['sy'] + dy init['sx'], init['sy'] = sx, sy if sx < 0 or sy < 0: b..

Algorithm/Python

[파이썬/백준 20056] 마법사 상어와 파이어볼 시뮬레이션

링크 : www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 🎈문제 어른 상어가 마법사가 되었고, 파이어볼을 배웠다. 마법사 상어가 크기가 N×N인 격자에 파이어볼 M개를 발사했다. 가장 처음에 파이어볼은 각자 위치에서 이동을 대기하고 있다. i번 파이어볼의 위치는 (ri, ci), 질량은 mi이고, 방향은 di, 속력은 si이다. 위치 (r, c)는 r행 c열을 의미한다. 격자의 행과 열은 1번부터 N번까지 번호가 매겨져..

Algorithm/Python

[파이썬/백준 1697] 숨박꼭질 BFS

www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌..

Algorithm/Python

[파이썬/백준 2178] 미로 탐색 BFS

www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 처음에는 모든 경로 탐색하는 문제에 익숙해져있어서 DFS를 사용해서 구현했다가 시간초과로 실패했다. 그래서 알아보니 BFS와 DFS에는 다음과 같은 차이가 있었다. BFS : 최단 경로를 보장한다. 두 노드간의 최단(임의) 경로를 찾고 싶을 때 사용한다. 큐를 사용한다. 재귀를 통해 구현할 수 없다. DFS : 모든 경로를 탐색한다. → 시간복잡도가 매우 커진다. BFS 보다 구현이 간단하다. 스택을 사용한다. 재귀를 통해 구현할 수 있다. ..

Data

[자연어처리]파이썬에서 워드, PDF, RSS 읽고 말뭉치(corpus) 생성하기

1. 라이브러리 설치하기 # docx pip install python-docx # pdf pip install pypdf2 # rss pip install feedparser # corpus # nltk 설치 후 www.nltk.org/data.html에서 데이터를 다운로드 할 것 pip install nltk 2. 워드 읽기 import docx def read_docx(filename): file = docx.Document(filename) content = [] for p in file.paragraphs: content.append(p.text) # print('단락 스타일:', p.style) # print('단락 수:', len(file.paragraphs)) return '\n'.join..

Trial and Error/Python

파이썬 단어 빈도 계산하기

파이썬에서 엑셀 파일 불러오기 import pandas as pd df = pd.read_excel(r'파일 경로') print(df) 이렇게 파일을 불러오면 이런식으로 리스트가 쭉쭉쭉 나온다. 여기서 가장 빈도가 높게 나오는 단어들을 찾을거다. plist = df.values.tolist() 이렇게하면 dataframe에서 list로 변환을 할 수 있다. 리스트로 변환을 하는 이유는... 나는 리스트를 사용하는 걸 좋아하기 때문이다... 그런데 위에서 보면 알겠지만 제목 옆에 1.0 이랑 NaN이라는 값이 있다. 저건 내 나름대로 필요해서 엑셀파일에 표시해놨지만 지금은 필요없다. 그래서 저게 없는, 순수하게 제목만 있는 리스트를 만들었다. title = [] for i in range(len(plist..

박한결
'파이썬' 태그의 글 목록 (4 Page)