파이썬으로 병합 정렬 알고리즘 구현하기

이 포스트는 파이썬에서 병합 정렬 알고리즘을 구현한 포스트입니다. 필자의 티스토리 블로그에서도 병합 정렬을 구현한 포스트를 포스팅했지만 여기서는 그 코드를 조금 개량하였습니다. 병합 정렬(Merge sort)이라는 것은 합병 정렬이라고도 하는데, 말 그대로 병합해서 정렬하는 방법입니다. 어떻게 정렬하느냐 하면, 우선 정렬을 수행할 배열의 크기(원소의 개수)가 0 혹은 1이면 정렬이 완료된 것으로 보고 2 이상일 경우 정렬을 하는데 예를 … 더 보기 “파이썬으로 병합 정렬 알고리즘 구현하기”

파이썬의 유용한 연산자 in

이 포스트에서는 파이썬에 쓰이는 연산자 중 유용한 연산자 in을 소개합니다. in은 멤버 연산자입니다. 어떤 배열이 있을 때 그 배열에 특정한 값이 있는가를 찾아서 그 값이 있으면 True(참)를, 없으면 False(거짓)를 돌려줍니다. 다음 코드를 봅시다. a = [1, 2, 3] print(1 in a) print(4 in a) print(1 not in a) print(4 not in a) 이 코드의 실행 … 더 보기 “파이썬의 유용한 연산자 in”

파이썬 2.7과 파이썬 3의 나눗셈 차이

이 포스트에서는 파이썬 2.7과 파이썬 3에서의 나눗셈의 차이점을 설명합니다. 5를 2로 나누는 식을 파이썬 2.7과 파이썬 3에서 함께 시도해 봅시다. 먼저, 파이썬 2.7에서 시도해 봅시다. >>> print 5 / 2 2 그 다음은 파이썬 3에서 시도해 봅시다. >>> print(5 / 2) 2.5 둘 다 똑같이 5를 2로 나누었는데 파이썬 2.7에서는 2를 출력하였지만 파이썬 3에서는 2.5를 … 더 보기 “파이썬 2.7과 파이썬 3의 나눗셈 차이”

파이썬에서 import 구문 이용하기

파이썬에는 import라는 구문이 있습니다. 이 구문은 파이썬에서 모듈을 불러오는 데 쓰이는 구문입니다. 이는 일일이 선언하기 불편한 함수나 변수, 클래스 등을 모아 모듈화한 파일을 불러와서 쓰기 위한 기능입니다. 미리 만들어져 있는 모듈 외에도 사용자가 직접 만들어서 선언하는 것도 가능한데, 다음 코드를 봅시다. def quicksort(arr, desc = False): if len(arr) <= 1: return arr # only 2 … 더 보기 “파이썬에서 import 구문 이용하기”

파이썬으로 구현한 화폐 매수 계산 알고리즘의 예

이 포스트에서는 파이썬으로 화폐 매수 계산 알고리즘을 구현한 예를 소개합니다. 개정되기 전의 정보처리기사 실기 문제 중에 화폐 매수 계산 알고리즘을 구현하는 문제가 있었습니다. 여기서는 이 알고리즘을 약간 다른 형태로 구현해 보았습니다. 코드는 다음과 같습니다. bill_unit = [50000, 10000, 5000, 1000, 500, 100, 50, 10] s = input(“Amount of money (KRW): “) try: m = int(float(s) … 더 보기 “파이썬으로 구현한 화폐 매수 계산 알고리즘의 예”

파이썬 프로그램 실행 옵션 받기

자바 프로그램 실행 옵션 받기 포스트에서 실행 옵션을 받아 처리하는 자바 프로그램 예제를 포스팅하였습니다. 파이썬에서도 자바처럼 실행 옵션을 받아 처리하는 프로그램을 만들 수 있습니다. 다음 코드를 봅시다. #!/usr/bin/python3 import sys for i, str in enumerate(sys.argv): print(“%d: %s” % (i, str) ) 자바보다 코드가 짧고 간단해진 것을 볼 수 있을 것입니다. 여기서는 sys 모듈을 불러와서 sys.argv … 더 보기 “파이썬 프로그램 실행 옵션 받기”

파이썬으로 퀵 정렬 알고리즘 구현하기 2

파이썬으로 퀵 정렬 알고리즘 구현하기 포스트에서 간단하기 퀵 정렬 알고리즘을 구현하여 보았습니다. 이번에는 같은 알고리즘으로 2차원 배열을 정렬하는 상황을 가정해 봅시다. unsorted = [[5, 7, 3], [3, 4, 5], [4, 2, 6], [2, 6, 4]] for xx in unsorted: print(“%s” % xx) print() for xx in quicksort(unsorted): print(“%s” % xx) 이렇게 2차원 배열을 퀵 정렬 … 더 보기 “파이썬으로 퀵 정렬 알고리즘 구현하기 2”

파이썬으로 퀵 정렬 알고리즘 구현하기

이 포스트에서는 파이썬에서 퀵 정렬 알고리즘을 구현한 포스트입니다. 여기서는 퀵 정렬 알고리즘을 병합 정렬 알고리즘 기반으로 구현하였습니다. 코드를 봅시다. def quicksort(arr, desc = False): if len(arr) <= 1: return arr # only 2 or more try: # numeric array pivot = (max(arr) + min(arr)) / 2 except TypeError: # non-numeric array i = len(arr) // … 더 보기 “파이썬으로 퀵 정렬 알고리즘 구현하기”

파이썬에서 switch 조건 이용하기

자바로 짜여진 코드가 다음과 같다고 가정해 봅시다. import java.util.Scanner; public class GFRIEND_AlbumInfo { public static void main(String[] args) { int n; Scanner in = new Scanner(System.in); System.out.println(“1. EP 1집”); System.out.println(“2. EP 2집”); System.out.println(“3. EP 3집”); System.out.println(“4. 정규 1집”); System.out.println(“5. EP 4집”); System.out.println(“Select a number. (1-5)”); n = in.nextInt(); switch (n) { case 1: System.out.println(“EP 1집: … 더 보기 “파이썬에서 switch 조건 이용하기”

파이썬으로 XML 파싱하기

이 포스트에서는 파이썬에서 XML 데이터를 읽어들이는 방법을 설명합니다. 이전의 파이썬으로 간단한 XML 파일 만들기 포스트에서 예제로 다음과 같은 내용의 XML 문서를 만들었을 것입니다. <?xml version=”1.0″ encoding=”UTF-8″?> <girlgroup> <name alias=”GFRIEND”>여자친구</name> <members> <member>소원</member> <member>예린</member> <member>은하</member> <member>유주</member> <member>신비</member> <member>엄지</member> </members> <albums> <album order=”EP 1집”>Season of Glass</album> <album order=”EP 2집”>Flower Bud</album> <album order=”EP 3집”>Snowflake</album> <album order=”정규 1집”>LOL</album> </albums> </girlgroup> … 더 보기 “파이썬으로 XML 파싱하기”