본문 바로가기

파이썬

(62)
백준 10872번 [Python] 문제풀이 (팩토리얼) - 이정개 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다. 출력 첫째 줄에 N!을 출력한다. 예제 입력 1 10 예제 출력 1 3628800 예제 입력 2 0 예제 출력 2 1 알고리즘 분류 수학 구현 파이썬 코드(실패) def pac(n): if n < 2: return n return n * pac(n-1) print(pac(int(input()))) 쉬운 코딩을 할때마다 실수를 조심하십시오 1!과 0! 모두 1이 된다는 것을 잊지 마세요 ** 아무 생각없이 2 이하는 모두 n으로 반환했다가 0!일때 0을 반환해버려 실패했습니다 파이썬 코드(성공) def pac(n): if n < 2: return 1 ret..
백준 2908번 [Python] 문제풀이 (상수) - 이정개 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력 첫째 줄에 상수의 대답을 출력한다. 예..
백준 1032번 [Python] 문제풀이(명령 프롬프트) - 이정개 문제 시작 -> 실행 -> cmd를 쳐보자. 검정 화면이 눈에 보인다. 여기서 dir이라고 치면 그 디렉토리에 있는 서브디렉토리와 파일이 모두 나온다. 이때 원하는 파일을 찾으려면 다음과 같이 하면 된다. dir *.exe라고 치면 확장자가 exe인 파일이 다 나온다. "dir 패턴"과 같이 치면 그 패턴에 맞는 파일만 검색 결과로 나온다. 예를 들어, dir a?b.exe라고 검색하면 파일명의 첫 번째 글자가 a이고, 세 번째 글자가 b이고, 확장자가 exe인 것이 모두 나온다. 이때 두 번째 문자는 아무거나 나와도 된다. 예를 들어, acb.exe, aab.exe, apb.exe가 나온다. 이 문제는 검색 결과가 먼저 주어졌을 때, 패턴으로 뭘 쳐야 그 결과가 나오는지를 출력하는 문제이다. 패턴에는 ..
파이썬 연산자 오버로딩(operator overloading) 연산자 오버로딩(Operator Overloading) 인스턴스 객체끼리의 연산을 위해 기존의 연산자 기능을 중복하여 정의한다. class Cal: def __init__(self, num): self.num = num n = Cal(1) n + 1 # TypeError: unsupported operand type(s) for +: 'num' and 'int' # 지원하지 않는 연산자 타입이라 나온다. 위와 같이 지원하지 않는 연산자 타입을 인스턴스 객체가 서로 연산할 수 있게 다시 정의한다. class Cal: def __init__(self, num): self.num = num def __add__(self, num): # + 연산자를 정의한다. self.num += num n = Cal(1) n..
파이썬 메서드 오버라이딩(Method Overriding)과 다형성(Polymorphism) 오버라이딩(Overriding) 상속에서 쓰이는 개념 부모 클래스의 메소드를 자식 클래스에서 재정의 하는 것. 이름이 같은 메소드가 자식 클래스에서 사용되면 부모 클래스 메소드는 무시된다. 같은 이름의 함수가 있으면 자식의 함수가 우선 참고) 파이썬의 경우 오버로딩 불가능 class Parent: def hi(self): print("하이") class Child(Parent): def hi(self): print("안녕하세요") a = Child() a.hi() # "안녕하세요" # 부모 클래스 메서드는 출력하지 않는다. super를 사용하면 호출이 가능하다. class Parent: def hi(self): print("하이") class Child(Parent): def hi(self): super..
파이썬 클래스 상속, 합성과 통합 상속(Inheritance)(IS-A) 자식 클래스(sub class)가 부모 클래스의 내용(속성과 메소드)를 물려받는 것. class Parrent: # super class name = "이름" age = "나이" language = "언어" def show(self): print("부모 클래스") class child(Parrent): # sub class def __init__(self, name, age, code): self.name = name self.age = age self.code = code def show_name(self): print("이름 : ", self.name) a = child('이정개', '23', '파이썬') a.show() # "부모 클래스" a.show_name..
파이썬 캡슐화와 정보은닉 캡슐화(encapsulation) 클래스를 정의할때 내부 속성과 메서드를 묶어서 하나의 단위로 처리하는 것 객체지향 프로그래밍의 주요 특징중 하나 외부의 영향을 받지않아 큰 프로젝트를 만들 때 용이 정보은닉(information hiding) 클래스 멤버를 정의할 때 접근을 제한하여 잘못된 상태를 방지함. __private 해당 형식 내부에서만 접근 가능 class Information_hiding: def __init__(self, name): self.__name = name def get_name(self): return self.__name order = Information_hiding('이정개') order.__name # AtributeError 인스턴스(instance) 클래스에 의해 만들..
파이썬 클래스, 멤버, 메서드 파이썬의 객체지향 프로그래밍에 대해 알아보자. 클래스 객체지향 프로그래밍의 기본 단위 속성(상태)와 메서드(행동)을 갖는다. 객체의 구조와 행동을 정의 초기화를 통해 제어 복잡한 문제를 다루기 쉽게 만든다. 자세한 내용은 다음 포스팅에서. 멤버 =클래스 내부 변수(멤버 변수) method, property, class variable, instance variable, initinalizer, destructor 등이 멤버이다. 메서드 =클래스 내부 함수 크게 인스턴스 메서드, 클래스 메서드, 정적 메서드로 구성 초기자(Initializer) __init__()의 형태 클래스로 객체를 만들 때마다 인스턴스 변수를 초기화하기 위해서 실행 self의 형태로 변수를 할당하여 계속 사용할 수 있게 준비한다. 인..