Python

Programing Language/Python

[Python] 문자열 관련 함수

문자열 관련 함수 문자 개수 세기 - count 문자열.count(문자) 문자열 내에 있는 문자의 개수를 반환한다. 문자 위치 찾기 1 - find 문자열.find(문자) 문자열 중 문자가 처음으로 나오는 인덱스 값을 반환한다. 만약 찾는 문자가 문자열 내에 존재하지 않는다면 -1을 반환한다. 문자 위치 찾기 2 - index 문자열 a는 find에서 사용했던 것과 동일하다. 문자열.index(문자) find와 같은 기능이다. 다만, 찾는 문자가 존재하지 않는 경우 ValueError가 발생한다. 문자열 삽입 - join 문자열.join(문자열) 이때 괄호 안에 들어가는 문자열 자리에는 리스트 또는 튜플도 사용 가능하다. 위 예시로 살펴보자면 문자열 asd 사이사이에 문자열 ,를 삽입한다. 대문자 변환 ..

CS/Algorithm

[Algorithm] 코딩 테스트 풀이 TIPs

코딩 테스트 풀이 TIPs 빅오 표기법 순위 명칭 O(1) 상수 시간(Constant time) O(logN) 로그 시간(Log time) O(N) 선형 시간 O(NlogN) 로그 선형 시간 O(N²) 이차 시간 O(N³) 삼차 시간 O(2ⁿ) 지수 시간 상수 시간에 가까울수록 성능이 좋고, 지수 시간에 가까울수록 성능이 좋지 않다. 알고리즘 설계 일반적인 기준의 컴퓨터에서 연산 횟수가 5억 회를 넘는 경우 파이썬은 5~15초가량의 시간이 소요된다. 코딩 테스트에서는 보통 1~5초 이내로 연산이 완료되어야 하므로(명시되지 않은 경우 대게 5초) 시간 복잡도를 잘 계산하고 알고리즘 설계를 작성해야 한다. 시간제한이 1초인 문제의 일반적 기준은 다음과 같다. 1. N의 범위가 500인 경우 : O(N³)인 ..

Solution/백준

[백준] 1065번: 한수

[백준] 1065번: 한수 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 내가 알고리즘을 좋아하지 않는 이유는 단순 논리 말고도 수학적 개념이 자주 나오기 때문인데... 이 나이가 되니 학생 때보다 수학 이해 속도가 좀 느려진 거 같다 허 허 허 (는 아직 20대 초반) Java 풀이 우선 양의 정수인 일의 자리 수와 십의 자리 수는 무조건 한수이다. 입력받는 숫자는 1000보다 작거나 같은 수라고 하였으니 백의 자리 수만 신경 쓰면 된다. (1000은 어차피 한수가 아니다) 1~9 사이의 일의 자리 숫자인 경..

Solution/백준

[백준] 2675번: 문자열 반복

[백준] 2675번: 문자열 반복 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net Java 풀이 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOE..

Solution/백준

[백준] 4673번: 셀프 넘버

[백준] 4673번: 셀프 넘버 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net Java 풀이 import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOException { BufferedWriter bw = new Buffered..

Solution/백준

[백준] 2577번: 숫자의 개수

[백준] 2577번: 숫자의 개수 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net Java 풀이 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new B..

Solution/백준

[백준] 1110번: 더하기 사이클

[백준] 1110번: 더하기 사이클 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net Java 풀이 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws..

Solution/백준

[백준] 10869번: 사칙연산

[백준] 10869번: 사칙연산 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net Java 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); System.out.println(a ..

Solution/백준

[백준] 1000번: A+B

[백준] 1000번: A+B 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 시간을 죽이기 위해 입출력부터 손을 댄다. 8시간은 너무나 긴 시간,, Java 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); System.out.println(A + B); } Scanner를 사용하여 풀었지만 수행 시간이 200ms이었다. 다른 사람들 제출 시간을 보니 java 8 기준 68ms..

Programing Language/Python

[Python] reduce 함수 예제

reduce reduce 함수 사용을 위해서는 functools를 import 해야 한다. functools.reduce(function, iterable[, initializer]) reduce 함수를 사용하면 첫 번째 인자로 들어가는 function을 사용해서 iterable 한 값을 하나의 값으로 줄일 수 있다. initializer는 주어지면 첫 번째 인자로서 추가된다. 즉, 두 개의 입력을 하나의 결과로 만들 수 있다. 주어진 데이터들의 합을 구하는 함수를 작성해본다. dataset = [1, 2, 3, 4] def total(numbers): result = 0 for number in numbers: result += number return result total(dataset) Out :..

Programing Language/Python

[Python] BeautifulSoup로 정적 웹 사이트 파싱하기

BeautifulSoup 아래와 같은 simple.html 파일이 있다. 이 파일을 파이썬에서 그대로 불러오고 싶을 때 사용하는 방법이 두 가지가 있다. header This is a paragraph 이것은 div 입니다 dog cat frog this apple banana 네이버 daum fish 제목 가격 1.이것이 파이썬이다 [도서] 19,200원 2.저것도 파이썬이다 [할인] 12,800원 3.그래도 파이썬인가? [중고] 6,500원 데이터 파싱 하기 우선 현재 경로에 있는 simple.html 내용을 가져오는 것이니 with as를 사용하여 파일 자체를 읽어온다. BeautifulSoup 파싱 라이브러리를 사용하면 손쉽게 html, json, xml 파일 등을 파싱 할 수 있다. In [7]..

Programing Language/Python

[Python] map()과 lambda 예제

map() map(함수, iterable 값) 이와 같이 map() 함수를 이용하면 집합 데이터 + 데이터에 대한 ~한 동작/연산을 수행할 수 있다. map() 함수의 결과는 map 객체이고, map 객체도 iterable 하다. map() 함수 사용 예제 매개변수 값을 제곱한 뒤 리턴하는 square() 함수를 만든 뒤 map() 함수의 첫 번째 인수로 넣었다. map() 함수로 리턴된 값을 변수 m에 저장하고 실행해보면 m은 map 객체라고 나온다. map 객체 또한 iterable 한 객체이고, list로 형 변환할 수 있다. [1, 2, 3] 데이터를 넣었는데 모두 제곱이 되어서 [1, 4, 9]가 된 것을 확인할 수 있다. list() 형 변환 함수 인수로 map() 함수 자체를 넣어 바로 li..

밈아
'Python' 태그의 글 목록