본문 바로가기

Programming/Python55

[python] 그래픽 편집기(Graphical Editor) - 재귀호출 [python] 그래픽 편집기(Graphical Editor) - 재귀호출 함수 재귀 호출 changeColor 함수를 재귀 호출 합니다. 상하좌우에 같은 색을 가진 블럭이 있으면 해당 블럭도 동일한 색으로 변경하며, 이 작업을 반복 합니다. 소스 # -*- coding: utf-8 -*- def changeColor(x, y, c, t): if x len(map[0])-1 or y len(map)-1 : return color = map[y][x] if color == t: map[y][x] = c else: return changeColor(x-1, y, c, t) changeColor(x+1, y, c, t) changeColor(x, y-1, c, t) ch.. 2015. 10. 31.
[python] LCD 디스플레이(LCD Display) - 숫자를 문자로, 문자를 리스트로 숫자를 문자로 n = str(n) 문자를 리스트로 nums = list(str(n)) 한글을 사용하려면 상단에 # -*- coding: utf-8 -*- 를 삽입해 주어야 합니다. 전체 소스 # -*- coding: utf-8 -*- file = 'p004.LCD.in' f = open(file, 'r') lcd = [] lcd.append([1,1,1,0,1,1,1]) lcd.append([0,0,1,0,0,1,0]) lcd.append([1,0,1,1,1,0,1]) lcd.append([1,0,1,1,0,1,1]) lcd.append([0,1,1,1,0,1,0]) lcd.append([1,1,0,1,0,1,1]) lcd.append([1,1,0,1,1,1,1]) lcd.append([1,0,1,0,0.. 2015. 10. 31.
[python] 여행(The Trip) - round round 를 사용합니다. file = 'p003.TheTrip.in' f = open(file, 'r') def getInt(f): return int(f.readline().strip()) def getFloat(f): return float(f.readline().strip()) while 1: num = getInt(f) if num == 0: break fees = [] sum = 0 for i in xrange(num): fee = getFloat(f) fees.append(fee) sum += fee avg = round(sum / num, 2) trans = 0 for fee in fees: if (avg > fee): trans += (avg - fee) print "${0}".forma.. 2015. 10. 28.
[python] 문자열 찾기 명령어를 실행하고, 실행 결과에서, 특정 문자열을 찾는 스크립트 입니다. 앞뒤로 출력할 수를 지정할 수 있습니다. import re import sys import subprocess numArgs = len(sys.argv) if numArgs 3 and int(sys.argv[3]) or 0 after = numArgs > 4 and int(sys.argv[3]) or 0 p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) arr = [] afterline = 0 while True: out = p.stdout.readline() if not out: break if afterline > 0: print out after.. 2015. 10. 27.
[python] 지뢰 찾기 (Minesweeper) - 이중 배열 이중 배열 # 배열를 선언합니다. map = [] # append 함수를 통해서 다시 배열을 추가 합니다.map.append([]) # 접근은 인덱스를 통해 가능합니다.map[1][2] file = 'p002.Minesweeper.in' f = open(file, 'r') def getCount(map, r, c, h, w): cnt = 0 for rowOffset in range(-1,2): for colOffset in range(-1,2): if rowOffset == 0 and colOffset == 0: continue row = r + rowOffset col = c + colOffset if row h-1 or col w-1: continue if map[row][col] == '*': cn.. 2015. 10. 27.
[python] 3n+1 문제 (The 3n+1 Problem) - 파일 읽기 [python] 파일 읽기 # open 함수로 파일을 읽습니다.f = open(file, 'r') # 각 줄의 내용을 얻습니다.for line in f: 짝수이면 나누기 2홀수이면, 3 곱하기, 더하기 1 1이 될떄까지의 반복횟수 구하기 file = 'p1.3n1.in'f = open(file, 'r') for line in f: s, e = [int(x) for x in line.split()] maxCnt = 0; for n in range(s,e+1): m = n cnt = 1 while m != 1: if (m%2 ==0): m = m /2 else: m = m *3 +1 cnt+=1 if cnt > maxCnt: maxCnt = cnt print s,e,maxCnt f.close() 입력데이터는.. 2015. 10. 26.