본문 바로가기

이론/Python4

mail_programming - 4주차 : 팰린드롬 판정하기 이번 매일 프로그래밍은 주어진 정수가 팰린드롬인지 아닌지 판정하는 것이다. 태어나서 팰린드롬이라는 말을 처음 들어보는 것 같은데 다행히도 뜻은 별로 어렵지 않다. 앞 뒤가 똑같은 수인지만 확인하면 되는 간단한 문제였다. 처음엔 배열(리스트)에 넣고 리버스를 하면 되는 것이 아닌가? 라고 생각을 했으나 문제의 조건에 정수를 문자열로 바꿔서는 안된다고 적혀있기에... 되도록 정수 상태 그대로를 보존해서 풀이해보았다. 슬라이스, 리버스 등을 사용할 수 없기에 한 자리씩 떼서 분류하기엔 역시 10으로 나눈 몫과 나머지를 이용하는게 가장 간단하다고 생각했다. 초기값이 0인 tmp 변수에 10을 곱하여 숫자가 들어갈 자리를 만들어주고, 주어진 수를 10으로 나눈 나머지를 tmp 변수에 더한 뒤 인자로 받은 정수를 .. 2018. 4. 15.
mail_programming - 3주차 : 괄호 조합 구하기 쉬운듯 복잡한듯... 방법은 간단했다. left(왼쪽괄호) right(오른쪽괄호) 의 개수를 하나씩 줄여가며 재귀함수를 실행시키고,마지막엔 decode 함수를 불러와 프린트한다. 파이썬 짱 쉽고 간편하다 최고 인생은 짧으니 파이썬을 쓰도록 하자 야호 123456789101112131415161718192021222324252627282930def parenthesis(left, right, code): if code == None: code = 1 parenthesis(left-1, right, code) else: if left != 0: if left 2018. 4. 14.
mail_programming - 2주차 : N보다 작은 짝수 피보나치 수의 합 1주차보다 훨씬 쉬웠다. 원래대로라면 입력된 수보다 약간 더 큰 피보나치 수를 구해서 range에 넣어줬어야 하는데, 귀찮아서 ipt+2로 처리해주었다. (2를 더한 이유는 예외처리) 12345678910111213141516def pibonacci(n): if n==0: return 0 elif n==1: return 1 else: return (pibonacci(n-2) + pibonacci(n-1)) sum = 0ipt = int(input('몇보다 작은 짝수 피보나치 수의 합을 구할까요? : ')) for i in range(ipt+2): if pibonacci(i) 2018. 4. 11.
mail_programming - 1주차 : 연속되는 가장 큰 정수 매주 하나씩 프로그래밍 문제를 메일로 보내준다는 매일 프로그래밍... 동아리 사람들끼리 모여서 진행중이었는데 난 휴학생이라 이제서야 알게됨..ㅠㅠ 인생은 짧으니 파이썬도 익숙해질겸 하나씩 해보기로 했다! 연속된 정수들의 가장 큰 합을 출력하라는 것이 문제인데, 시간 복잡도 따위는 고려하지 않는 코딩으로 어찌어찌 했다.중학교 수학 시간에 배웠던 부분 집합을 만드는 방법에서 착안하여 요소가 하나인 부분 집합요소가 둘인 부분 집합요소가 셋인 부분 집합... 들을 만들어 그들의 합을 구하는 방식이다. 변수 parameter은 요소의 개수를 의미하고, idx는 인덱스, k는 연속되는 정수들을 세는 역할을 한다. 입력받은 sett 배열의 인덱스에 도착해 그 값을 sum 에 더하고, parameter의 개수만큼 연속.. 2018. 4. 8.