반응형

Data/Python 27

정규 표현식 (Regular Expression)

정규 표현식 (Regular Expression, Regex) 복잡한 문자열을 특정한 규칙이나 패턴을 이용하여 처리하는 것에 사용한다. 텍스트에서 특정 문자열을 검색,치환 , 추출 할 때 사용됩니다. 예를 들어, 웹 페이지에서 유저의 이메일 주소, 휴대폰 번호를 추철하거나 로그파일에서 특정 에러메시지가 들어간 라인들을 찾을 때 정규 표현식을 사용하면 쉽다. - 특정 프로그래밍 언어에 종속된 문법을 가지지 않으나 특정 언어, 환경에서만 적용가능한 패턴이 존재하긴 한다. 1. 모듈 re.compile(pattern, flags=0) 어떤 정규식을 코드 내에서 여러 번 사용하고자 할 때 문자열 패턴을 컴파일하여 정규식 객체() 를 만들어 재사용 특히 복잡하고 긴 정규식같은 경우 편리하며 보통 match, se..

Data/Python 2021.07.08

백준 알고리즘[파이썬] 2869번: 달팽이는 올라가고 싶다

백준 알고리즘[파이썬] 2869번: 달팽이는 올라가고 싶다 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나..

Data/Python 2021.07.04

백준 알고리즘 [파이썬] 1193번: 분수찾기

백준 알고리즘 [파이썬] 1193번: 분수찾기 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 첫째 줄에 분수를 출력한다. 예제 입력 14 예제 출력 2/4 소스코드 n=int(intput()) i=1 while(n>0): n-=i i+=1 i-=1 n1=n+i n2=i-..

Data/Python 2021.07.03

백준 알고리즘 [Python] 1712 손익분기점

문제 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다. A, B, C가 주어졌..

Data/Python 2021.07.02

백준 알고리즘 [Python] 2292번 벌집

2292번 벌집 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. N=int(input()) i=1 while(N>1): N-=6*i i+=1 print(i) 1인 경우 1, 7미만의 숫..

Data/Python 2021.07.01

백준 알고리즘[파이썬] : 2775 부녀회장이 될테야

#2775 부녀회장이 될테야 문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스..

Data/Python 2021.06.30

백준 알고리즘 [파이썬] 10809. 알파벳 찾기

10809번 알바펫 찾기 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공..

Data/Python 2021.06.28

백준 알고리즘 [파이썬] 7. 문자열

7. 문자열 문자열 단계 정수를 문자열로 입력받는 문제. Python처럼 정수 크기에 제한이 없다면 상관 없으나, 예제 3은 일반적인 정수 자료형에 담기에 너무 크다는 점에 주목합시다. www.acmicpc.net #11654 아스키 코드 print(ord(input())) ord() 문자의 유니코드(Unicode) o로 변환하는 문자 인코딩 A 65 Z:90,...a: 97 ...z=122 #11720 숫자의 합 _=int(input()) print(sum(list(map(int, input())))) input() 사용자 입력값을 받으며 string 타입 map을 이용해서 input()을 integer타입 변환 list 리스트 타입으로 변환 (iterable) sum(iterable, start) i..

Data/Python 2021.06.27

[Python]NaN, None 차이(feat. Pandas.NA)

Python에서는 결측값을 표현하는데에 NaN과 None을 사용하는데 둘의 차이에 대해서 알아보겠습니다. 정의, 데이터 타입, 객체 생성 측면에서 차이점을 보고 pd.NA가 왜 있는지에 대해서 알아보겠습니다. 참고로 파이썬에서는 null, Na없는데 몇몇 블로그에서는 alias로 불러오거나 객체 만들어서 있다고 설명하셨다. 또, 동일한 의미라고 설명되어 있는데 맞지 않는 설명이라고 생각합니다. 동일하다면 굳이 따로 만들 필요도 없고 다르게 정의할 필요도 없다고 생각합니다. 1. 정의 NaN(Not A Number) 표현되지 않는 부동소수점 값으로 float 타입이다. 사용하는 방법은 하단과 같이 두가지 방식이다. nan 스트링에다가 float으로 강제 형변환하거나 넘파이의 nan을 불러온다. float(..

Data/Python 2021.06.27

백준 알고리즘 [파이썬] 1065 한수

1065번 한수 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 예. 110 -> 99 def hansu(num):..

Data/Python 2021.06.26
반응형