Python 파일 입출력 기본 함수인 open() 을 이용하여 파일 입출력이 가능하다. help(open) open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) Open file and return a stream. Raise IOError upon failure. file 유일하게 필수 입력사항이며 파일 경로를 지정해준다. mode 읽기/쓰기에 대한 상세 모드를 설정한다. 기본값은 ‘rt’ 이며 텍스트파일을 읽는 모드이다. 어떠한 작업을 수행하는지에 따라 ‘r’,’w’,’a’ 문자와 […]
[Python] urllib
urllib urllib 라이브러리를 이용해 web 데이터를 python에서 손쉽게 활용 가능. urllib 내에 총 4개의 모듈이 존재. request parse request 웹을 열어서 데이터 읽어오는 역할. 웹에서 얻은 데이터 객체 정보 전달 test source code #!/apps/python/bin/python import urllib.request req = urllib.request res = req.urlopen(“http://oboki.net”) print (res) ## 서버 정보 반환 svr = res.getheaders() for i in svr: […]
[Python] 기본 함수
input() 표준 입력을 변수에 대입. 입력되는 모든 것을 문자열로 취급 cf. raw_input() 프롬프트 이후 입력 받기 input(“질문”) split() 문자열 자르기. split 입력 인자로 구분자로 사용될 문자열 설정. 기본값으로 ‘ ‘ 사용하는 듯 map() 아래와 같이 list, tuple 의 모든 원소에 함수 적용 list(map(함수,리스트)) tuple(map(함수,튜플))
[BaekJoon Online Judge] 2178 – 미로 탐색
[BaekJoon Online Judge] 2178 – 미로 탐색 문제 https://www.acmicpc.net/problem/2178 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, […]
[BaekJoon Online Judge] 9095 – 1, 2, 3 더하기
BaekJoon Online Judge 9095: 1, 2, 3 더하기 문제 https://www.acmicpc.net/problem/9095 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 […]
[BaekJoon Online Judge] 11727 – 2Xn 타일링 2
BaekJoon Online Judge 11727: 2Xn 타일링 2 문제 https://www.acmicpc.net/problem/11727 2×n 직사각형을 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 소스코드 n = int(input()) d […]
[BaekJoon Online Judge] 11726 – 2Xn 타일링
BaekJoon Online Judge 11726: 2Xn 타일링 문제 https://www.acmicpc.net/problem/11726 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 소스코드 n […]
[BaekJoon Online Judge] 1463 – 1로 만들기
BaekJoon Online Judge 1463: 1로 만들기 문제 https://www.acmicpc.net/problem/1463 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 […]
[Algorithm] Merge Sort
Python으로 구현한 Merge Sort 분할정복 (Divide & Conquer) 기법을 이용하여 정렬한다. 주어진 리스트를 원소의 갯수가 1인 리스트가 될 때까지 분할한 뒤 그 리스트들을 다시 합치는 과정에서 원소를 비교하여 정렬을 수행한다. 소스코드 vi sort.py # Merge Sort def sort_merge(arr): if len(arr)<=1: return arr ## Exception ## Divide left = sort_merge(arr[:len(arr)//2]) right = sort_merge(arr[len(arr)//2:]) ## Conquer i,j,k […]