본문 바로가기

파이썬

(16)
[Algorithm] [Python] 백준/BOJ - 10015 _ 숫자 카드 10815 - 숫자 카드 INDEX 1.문제 설명 2.입력 3.출력 4.제출 코드 5.코드 설명 문제 설명 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 ..
[Algorithm] [Python] 백준/BOJ - 5532 _ 방학 숙제 1966 - 수 찾기 INDEX 문제 입력 출력 예제 입출력 제출 코드 문제 풀이 문제 상근이는 초등학교에 다닐 때, 방학 숙제를 남들보다 먼저 미리 하고 남은 기간을 놀았다. 방학 숙제는 수학과 국어 문제 풀기이다. 방학은 총 L일이다. 수학은 총 B페이지, 국어는 총 A페이지를 풀어야 한다. 상근이는 하루에 국어를 최대 C페이지, 수학을 최대 D페이지 풀 수 있다. 상근이가 겨울 방학동안 숙제를 하지 않고 놀 수 있는 최대 날의 수를 구하는 프로그램을 작성하시오. 입력 한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100) 항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다. 출력..
[Algorithm] [Python] 백준/BOJ - 2822 _ 점수계산 2822 - 점수 계산 INDEX 문제 설명 입력 출력 예제 입출력 제출 코드 코드 설명 문제 설명 상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다. 상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개 문제 점수가 주어졌을 때, 총 점수를 구하는 프로그램을 작성하시오. 입력 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르..
표준 라이브러리 파이썬 표준 라이브러리는 파이썬을 설치할 때 항상 함께 설치되는 많은 수의 유용한 모듈들을 말한다.파이썬 표준 라이브러리에 익숙해지면 이를 이용해 해결할 수 있는 많은 문제들을 좀 더 빠르고 쉽게 해결할 수 있다. 지금부터 표준 라이브러리에 포함된 많은 모듈 중에서 자주 사용되는 몇가지 모듈에 대해 알아볼 것이다. sys 모듈sys모듈에는 시스템의 가능을 다루는 여러 함수들이 들어 있다. 예를들어 sys.argv리스트에는 명령줄 인수들이 들어 있다. 또 sys 모듈을 통해 현재 사용하고 있는 파이썬의 버전을 알아올 수 있다.help(sys)를 쳐보면 sys에 대해 알수있다. argv -- command line arguments; argv[0] is the script pathname if known v..
예외 처리 예외 처리 예외란 말 그대로 프로그램에서 벌어지는 예외적인 상황을 뜻한다. 예를 들자면 , 우리가 파일으 읽고자 할 때 그 파일이 존재하지 않는 경우라던지 , 또는 한참 프로그램이 실행중인데 그 파일을 갑자기 지워버렸다던지 하는 경우다. 이러한 상황을 처리해 주는 것을 예외 처리 라고 한다. 비슷하게 우리가 프로그램에 존재하지 않는 명령문이 있을 경우 어떻게 될까? 이런 경우 파이썬은 손을 들고( raise ) 프로그램에 오류 ( error ) 가 있다고 알려준다. 오류 간단히 print함수를 호출하는 상황을 생각해보자. 이 떄 print를 Print 라고 잘못 쳤을 경우 어떻게 될까?SyntaxError ( 구문 오류 ) 가 발생되었고 오류가 발생한 위치가 표시될 것이다. 이것은 이 오류의 오류 핸들러..
입력과 출력 입력과 출력프로그램을 만들다 보면 간혹 프로그램이 사용자와 상호 작용을 해야 할 떄가 있다. 예를 들어 , 사용자로부터 뭔가를 입력받고 처리 결과를 출력해 주는 것 같은 일이 필요할 때 입니다. 파이썬에서는 이를 위해 input()함수와 print()문을 이용한다. 결과를 출력해주기 위해서는 str( 문자열 ) 클래스가 제공하는 여러 메소드를 사용할 수도 있다. 예를들면 , rjust 메소드를 사용하여 출력될 문자열이 특정 폭의 문자열 안에서 오른쪽 정렬되도록 할 수 있다. 사용자로부터 입력받는 예제를 살펴보자. def reverse(text): return text[::-1] # 입력받은 text를 뒤집는 함수 def is_palindrome(text): return text == reverse(tex..
상속 객체 지향 프로그래밍의 또 다른 장점은 코드를 재사용 할 수 있다는 것인데 이를 위한 한가지 방법으로 상속이 사용된다. 상속은 클래스 간의 형식과 세부 형식을 구현하는 것이라고 생각해 볼 수 있다. 만일 우리가 어떤 대학의 교수님들과 학생들의 명부를 작성하는 프로그램을 작성한다고 가정하자. 이 때 교수와 학생 모두 공통적으로 이름 , 나이 , 주소 등의 성질을 가지고 있을 것이며 , 교수에만 적용되는 성질로는 연봉 , 과목 , 휴가 등이 있을 것이고 , 학생에만 적용되는 성질로는 성적 , 등록금 등이 있을 것이다. 따라서 우리는 각각의 경우에 두 독립적인 클래스를 만들 수 있겠지만 , 이 경우 각각의 공통적인 성질 또한 각각의 클래스에 두번씩 반복해서 정의해줘야 한다. ( 여간 귀찮은게 아니다..) 더 ..
클래스 변수와 객체 변수 저번시간 정리한 내용을 복습하고 시작하자 ( 매우 중요 하기 때문)객체 지향 프로그래밍의 두가지 주인공 클래스 : 새로운 형식을 정의 객체 : 클래스의 인스턴스를 의미 ex ) int라는 형식의 변수를 만들 수 있다는 것 , 이는 곧 정수형을 저장하는 변수는 int 클래스의 객체(인스턴스)를 변수에 할당하는 것 이라고 말할 수 있다. 쉽게 생각하면 클래스는 뽑기 틀에 비유하고 , 인스턴스는 틀에 의해 생성되는 뽑기 들을 생각하면된다. 객체는 그 객체에 내장된 일반적인 변수들을 사용하여 데이터를 저장할 수 있다. 이 때 객체 혹은 클래스에 소속된 변수들을 필드라고 불렀다. 객체는 또한 내장된 함수를 이용하여 어떤 기능을 갖도록 하는데 이것을 클래스의 메소드 라고 불렀다.또 이러한 필드와 메소드들을 통틀어 ..